12

アクセストークンの有効期限を取得する方法はありますか?これは私がセッションをリフレッシュできるようにするために必要です。また、この方法が欲しいのでfacebookユーザーPHP cURLを使用してフェッチしたときのデータ。私は私のカスタムアプリケーションのいずれかでDEBUG]ボタンをクリックした場合、私は(例えば)は、この情報を見ることができます https://developers.facebook.com/tools/access_token/ このリンクFacebookアクセストークンの有効期限情報を抽出する方法

App ID: 23131XX000: My Custom App 
User ID: XX99858XX : Mario Bro 
Issued: XX11111XX : 2:00 pm Feb 10 2012 
Expires: XX11111XX : 3:00 pm Feb 10 2012 
Valid: True 
Origin: Unknown 
Scopes: email user_likes 

、それはそのアプリから有効期限を表示するにも

。 PHPのSDKやグラフのURLコマンドでその情報を得る方法はありますか?

+0

トークンを取得すると、トークンが期限切れになったときに通知されます。したがって、最初から取得し、保存しておき、いつでも利用可能であれば計算することができます。 – Andrew

+0

こんにちは、返信のために、どうやってfacebook PHP SDKを使ってそれを抽出できますか?申し訳ありませんが、私はあなたのポイントを得ることはできませんが、私はその部分を勉強することができるので、どこに見えるか分からない場合は、開発者のドキュメントにリンクがありますか?またはこの部分について説明する可能性のあるリンク? – zearth

答えて

3

更新:
コード怒鳴るは、もはやある作品(バグレポートPHP SDK getSignedRequest does not include "expires" fieldを参照)、)PHP-SDKとそのデータを取得する方法はありません。

Debug toolを使用して、access_tokenが期限切れになったときに手動で検出することができます。

あなたは signed_requestから access_tokenの有効期限を取得することができます。

$facebook = new Facebook(array(
    'appId'=>APP_ID, 
    'secret'=>APP_SECRET 
)); 
$signedRequest = $facebook->getSignedRequest(); 
$expiresDate = date('c', $signedRequest['expires']); 
print_r($expiresDate); 

+0

これは私にとってはうまくいかなかった。 'expires'キーはありません。 – phirschybar

+0

@phirschybar、サンプルコードに間違いがありました。 'expires'がまだ残っていない場合はおそらく' signed_request'を持っていないよりも、 'print_r($ signedRequest)'を試してみてください。 –

+0

私は同じ問題を持っています、 'expire'フィールドがありません。 – Roni

2

グラフAPIエンドポイントがあります(この質問の後にリリースされた可能性があります)あなたの有効期限を与えることその他の有用な情報を提供します。詳細については、Debugging Access Tokens and Handling Errorsのドキュメントをご覧ください。

+0

すべてのアプリはいつでも無効化されたトークン(ユーザーがあなたの権限を持っていないなど)をサポートしているはずですが、この情報のバックチャネルを使用することに頼るべきではありません。 –

+3

正確なリンクはhttps://developers.facebook.com/docs/facebook-login/access-tokens#debugで、APIエンドポイントは '' GET/debug_token?input_token = {input-token}&access_token = {access-token} '' ' –