2011-07-01 20 views
0

私はFacebookの認証に問題があります。私がログインしていた場合でも、getUser()戻り0Facebook Graph APIの問題

機能は、ここに私のコードです:

$fb_params = array(
'appId'  => APP_ID, 
'secret' => SECRET_ID 
); 
$fb = new Facebook($fb_params); 

echo $fb->getUser(); // UID 

誰かがアイデアを持っていますか?

PS:あなたは現在として認証されていない「私は$fb->api('/me')への長いアクセスは、それは私がそれは認証の問題にリンクされていると思う、それはaccess_token必要と言うことはできません...」

おかげ

答えて

1

ユーザー、アプリケーションとしてのみ。その結果、Facebook APIは/ meページを表示することも、getUser()呼び出しに応答することもできません。これは、APIにアクセスしようとしているユーザー(つまり「Who is/me」 ? ")。また、公開アクセス可能な情報にしかアクセスすることもできません。

あなたは、のOAuth2を通して、あなたのアプリケーションを認証するためのユーザーを取得しますが返されaccess_tokenはを保存し、その後、任意の将来の呼び出し(例えば、それを含める必要がWIRQjCey1.3600.1309525200.0-509450630 | eD6SAR ">のhttps:// graph.facebook.com/me?access_token=2227470867|2.AQB-_ WIRQjCey1 .3600.1309525200.0-509450630 | eD6SAR ...)

あなたは

を行うことができますPHP SDKを使用してこれを行うにしてください。
$loginUrl = $fb->getLoginUrl(); 
echo "<a href='$loginUrl'>Login with Facebook</a>"; 

このリンクをクリックしてユーザーを認証させると、$ _SESSIONにaccess_tokenが格納され、refresh th "new Facebook($ fb_params);"コンストラクタは$ _SESSIONからアクセストークンを取り出し、将来のすべての呼び出しにそれを使用し、$ fb-> getUser()のように呼び出します。正しく返されます。

ここには、SDKのexamplesフォルダに機能的な例があります。 https://github.com/facebook/php-sdkです。 アプリケーションとして認証されている間(公衆データアクセスのみ)、ユーザとしてコールしてみることができます。