Offline_access の非推奨にもかかわらずアクセス トークンの有効性を延長する方法
問題:
Facebook の非推奨offline_access 権限により、取得が妨げられています。有効期間の長いアクセス トークン。ドキュメントでは、サーバー側の OAuth トークンが長期間存続すると示されていますが、実際はそうではありません。
回答:
編集 (2012 年 8 月 14 日) ):
公式 Facebook PHP SDK にはが更新され、改訂された setExtendedAccessToken 関数が導入されました。潜在的なセッション重複の問題を軽減するには、関数の実行時に現在のセッションを終了する必要があります。さらに、新しいアクセス トークンを内部に保存し、パブリックの getAccessToken 関数を介して取得できるようにします。 Facebook PHP SDK GitHub ページから最新の SDK を取得します。
元の回答:
60 へのアクセスを許可する新しいパブリック関数がbase_facebook.php に追加されました。 -day 更新可能なアクセス トークン。通常のアクセス トークン受信後にこの関数を実装するだけで十分な場合があります。さらに、開発者アプリの詳細設定で「deprecate offline_access」を有効にすることが必要であると考えられます。
Facebook クラス内のbase_facebook.phpに次のコードを挿入し、関数を呼び出します:
public function getExtendedAccessToken(){ try { // need to circumvent json_decode by calling _oauthRequest // directly, since response isn't JSON format. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type'=>'fb_exchange_token', 'fb_exchange_token'=>$this->getAccessToken() ) ); } catch (FacebookApiException $e) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. return false; } if (empty($access_token_response)) { return false; } $response_params = array(); parse_str($access_token_response, $response_params); if (!isset($response_params['access_token'])) { return false; } return $response_params['access_token']; }
以上がOffline_access の廃止後に長期有効な Facebook アクセス トークンを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。