私の Facebook PHP SDK アプリケーションは Facebook にログインし、access_token を受け取りました。
PHP SDKを使用して後で「expires」パラメータの値を取得するには?
私の Facebook PHP SDK アプリケーションは Facebook にログインし、access_token を受け取りました。
PHP SDKを使用して後で「expires」パラメータの値を取得するには?
Facebook APIは、 https://developers.facebook.com/docs/authentication/に記載されているように、応答でaccess_tokenとともにexpiresパラメーターを提供します。
アクセストークン(access_tokenパラメーター)に加えて、応答にはトークンが期限切れになるまでの秒数(expiresパラメーター)が含まれます。トークンの有効期限が切れたら、上記の手順を再実行して新しいコードとaccess_tokenを生成する必要がありますが、ユーザーがすでにアプリを承認している場合は、再度承認するよう求められることはありません。アプリに有効期限が無限のアクセストークンが必要な場合(おそらく、ユーザーがアプリを使用していないときにユーザーに代わってアクションを実行するため)、offline_access権限をリクエストできます。
アクセストークンの残り時間を取得しようとしている場合、FacebookにはAPIを介してこれを行うためのメソッドさえあるとは思いません。新しいアクセストークンをリクエストするか、上記のリファレンスにも記載されている「offline_access」トークンをリクエストする方が簡単です。
Facebook PHP SDK で「expires」パラメーターを取得するには、SDK 内で提供される base_facebook.php スクリプトに数行を追加する必要があります。
//base_facebook.php
//At Line 728
if (!isset($response_params['access_token'])) {
return false;
}
//Add these two lines here
$_SESSION['token_created_time'] = time();
$_SESSION['token_expires'] = $response_params['expires'];
return $response_params['access_token'];
アプリケーションに接続したら、「expires」パラメーターと、トークンの有効期限が切れるまでの残り時間に次のようにアクセスできます。
//Your "expires" parameter :
echo $_SESSION['token_expires'];
//The remaining time before your token expires :
echo $_SESSION['token_expires'] + $_SESSION['token_created_time'] - time();
それが役立つことを願っています。