私は多くのさまざまな回答をクロールしましたが、Facebookのアクセストークンをどのように扱うべきかについてまだ少し混乱しています。私が抱えている主な問題の 1 つは、ブラウザーに保存されている情報が原因です。たとえば、アプリにログオンすると、トークンの有効期限が切れ、ブラウザーで Cookie やアプリの設定をクリアしない限り、再度ログオンできなくなります。
このスレッドに出くわしました:offline_access deprecation以降、アクセストークンの有効性を拡張する方法
これは、php.ini を介して拡張アクセス トークンを作成する方法を示しています。
私の質問は次のとおりです。
1.アクセス トークンをどこかに保存する必要がありますか?
2.アクセス トークンが期限切れまたは無効になるとどうなりますか? 現時点では、短期間のアクセスの有効期限が切れると、アプリが機能しなくなります。
3.有効期限が切れているかどうかを確認するためにそれらを処理する方法はありますか? 私はphp sdkを使用しており、基本的に標準のif( $user )を使用しています...次のように:
require 'sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
));
$user = $facebook->getUser();
if( $user ){
try{
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if (!$user){
$params = array(
'scope' => 'email',
);
$loginUrl = $facebook->getLoginUrl( $params );
echo '<script type="text/javascript">
window.open("'. $loginUrl .'", "_self");
</script>';
exit;
}
if( $user ){
$access_token = $facebook->getExtendedAccessToken();
$get_user_json = "https://graph.facebook.com/me?access_token="
. $access_token;
// Rest of my code here...
}
- トークンを処理するために他にすべきことはありますか?
. ページ間でアクセストークンを渡す必要がありますか、それとも次のように各ページの上部でもう一度呼び出すだけでよいですか:
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXX',
'redirect_uri' => 'http://localhost:8000/',
));
$token = $facebook->getExtendedAccessToken();