2012-03-06 10 views
0

Facebookのアプリをデザインしていて、友達の「場所」を取得しようとしています。グラフAPIエクスプローラツールを使用:http://developers.facebook.com/tools/explorer/それはスナップです。Facebookのaccess_tokenがこの例よりも短く、 'session part'がないのはなぜですか?

ただし、認証されたAppユーザーからアクセストークンを取得する呼び出しを行うと、受け取ったトークンはGraph APIエクスプローラツールから生成されたトークンよりも短くなります。この短いトークンで私は基本的な友人情報を受け取ることができますが、ではの位置オブジェクトを取得できません。いくつかの調査を行っていると、トークンの「セッション部分」が欠落しているようです。http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/

このセッション部分はどのように取得できますか? Facebookから受け取るトークンが、グラフエクスプローラーAPIから受け取ったのと同じトークンではないのはなぜですか?

注:友だちの場所を読み取るために必要な拡張アクセス権を要求していることを確認しました。

+0

は、あなたが得るトークンの例を投稿することができますか?また、このトークンの原因となったプロセスについて詳しく説明してください。 –

+0

詳細を追加してみてください。おそらく、あなたが持っているものは、アプリケーション 'access_token'です。この[ツール](https://developers.facebook.com/tools/access_token/)を試してみてください。 – ifaour

+1

@ifaour Ahh、yup。それはそれだった。ありがとう! – frio80

答えて

1

ユーザーaccess_tokenがあることを確認してください。 PHP-SDKを使用している場合は、アプリaccess_tokenを使用している可能性が高いです。

SDKは常にアプリaccess_tokenを取得し、どのユーザaccess_tokenが存在しない場合は、それを使用します(referenceは):

/** 
* Determines the access token that should be used for API calls. 
* The first time this is called, $this->accessToken is set equal 
* to either a valid user access token, or it's set to the application 
* access token if a valid user access token wasn't available. Subsequent 
* calls return whatever the first call returned. 
* 
* @return string The access token 
*/ 
    public function getAccessToken() { 
    if ($this->accessToken !== null) { 
     // we've done this already and cached it. Just return. 
     return $this->accessToken; 
    } 

    // first establish access token to be the application 
    // access token, in case we navigate to the /oauth/access_token 
    // endpoint, where SOME access token is required. 
    $this->setAccessToken($this->getApplicationAccessToken()); 
    $user_access_token = $this->getUserAccessToken(); 
    if ($user_access_token) { 
     $this->setAccessToken($user_access_token); 
    } 

    return $this->accessToken; 
    } 
関連する問題