私はこれにちょっと新しくて、私に同行してください。 Javascript SDKを使用して「Facebookでログイン」ボタンをインストールしましたが正常に動作します。 私もPHPコード(facebook.php)を設定しました JavaScriptを使用してFacebookに正常にログインできますが、その後はPHP経由でセッションからUIDにアクセスすることはできません。 それで、PHPでセッションのJavaScriptセットにアクセスするにはどうしたらいいですか? おかげFacebookのCookieはどこにありますか?
編集:(読みやすくなりますので、以下のここからの投稿コード)
私は応答をログコンソールとそれを見ることができます。
FB.getLoginStatus(function(response) {
console.log(response.session.uid);
});
ページを更新し、phpで設定されたセッションにアクセスしようとすると、nullが返されます。
require_once(RELATIVE_PATH.'applibs/facebook.php');
$config = array('appId'=>Config::$fb_app_id, 'secret'=>Config::$fb_secret, 'cookie'=>true);
$fb = new Facebook($config);
$fb->getUser(); // this will equal null because the $fb object isnt finding the cookie supposedly set by javascript
*は358 ... $ COOKIENAME =の$ this - > getSessionCookieName()ライン上facebook.php
にいくつかのデバッグをしました。
// fbs_myNumericAppIdを返します。
if(isset($ _ COOKIE [$ cookieName])){
// FAILS! $ _COOKIE ['fbs_myNumericAppId']
これは、facebook.comにログインすると、自分のアプリIDがどのようになっているのかが分かりますか?
facebook.comにログインした後、$ _COOKIEに関連するFacebookのブックはありません。 したがって、facebook.com経由でFacebookにログインするには、Webサイトにログインするように通知するには、ページ読み込み時にFB.loginを実行する必要があります。 次に、$ _COOKIEに返されたjavacript情報を使ってCookieを設定する必要があります。
はいアプリを登録しました。私はjavascriptを使ってログインしたときにresponse.sessionが入ってくるのを見ることができますが、PHPではそうではありません – hogsolo
@hogsolo:あなたは何をしようとしているのでしょうか? – David
@hogsolo:これは問題ありません。あなたが投稿したコード(アプリケーションの秘密など)で妥協しているものを難読化してください。 JavaScriptだけでもFacebookとやりとりするにはさまざまな方法がありますので、問題を再現できるコードのベースラインを手助けするほうがずっと簡単です。 – David