2016-08-02 11 views
1

こんにちは私はちょっと混乱していて、Facebook APIをどうすればいいのか分かりません。Facebook PHP SDKユーザーアクセストークンを取得

グラフAPIの更新を取得するためのWebHookを設定しました。ユーザーが名前/メールなどを変更すると、完全に機能し、JSONが取得され、どのフィールドが変更されたかがわかります。

しかし、今どこに行くのですか?私はuserIDとappIDでaccessTokenを取得しようとしましたが、動かすことができませんでした。私はAppAccessTokenを取得することができましたが、私はUserAccessTokenが必要なので、その(IDと名前のみ)でユーザーデータを照会することはできません。私は実際には

$fb->get("/{userID}?fields=name,email") 

からデータを変更受け取るにはどうすればよい

はあなたの助けをありがとう、ウェブ上で非常に多くのものがあり、私は本当に私が必要なものを把握することはできません。

すべてのベスト、 ルーク

+0

どのSDKのSDKを使用していますか? –

+0

V4_5.0.0 :)は最新のリリースであるべきです – SomehowLuke

答えて

-1
$accessTokenEntity = new Facebook\Authentication\AccessToken(); 
$accessToken = $accessTokenEntity->getValue(); 

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->get('/me?fields=id,name', $accessToken); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

は、実際にそれをテストする機会を持っていなかったが、thisに応じてそれが動作するはずです。

+0

私の理解のために、ログインプロセスによって返されるオブジェクトです。だから私は実際のログインや私のユーザーが彼のIDによってaccesstokenを与える何かが不足しています。 webhookによって呼び出されるので、私はredirecturlhelperとcanvashelperのどちらも使用できませんので、ユーザーは実際にアクセスを起動しません。なぜなら、スクリプトはwebhookによって呼び出され、キャンバスを通過しないからです。私はoffline_accessを使用して、データベース内に生涯のaccesstokenを格納することを考えましたが、可能であればidをむしろ呼び出すことができます。 – SomehowLuke

+0

これは動作しません。ここでの問題は、サーバーがログインをトリガーし、ユーザーのIDのみを持ち、セッションなどがないことです。だから、どのようにサーバーが今 "私"であり、どのようなアクセスが取れるか。私はそれを見て、offline_accesはもはや利用できないので、私はちょうどIDと私のappidだけでなく、appsecurityだけで、ユーザーのデータにアクセスすることができる方法が必要です。どのようにして問題を解決できますか? – SomehowLuke

+1

ユーザートークンを最大60日間有効にすることができます。格納されているトークンがそれより古いため無効になった場合、新しいトークンを作成するために再度ログインフローを介してユーザーを送信する必要があります。他の方法はありません。 – CBroe

関連する問題