0

オフラインのときにユーザー情報にアクセスするには、ユーザーは offline_access を許可し、次のように保存します。

$session=$facebook->getSession();
if($session)
{
    $access_token=$session['access_token'];

}

$qq=sprintf("insert into `tokens`(`uid`,`access_token`) values ('%s','%s')",$myid,$access_token);
$res1=mysql_query($qq);

しかし、graph.facebook.comを使用してそれらから情報を収集しようとすると、機能する場合と機能しない場合があり、次のエラーが表示されます。

アクセス トークンの検証中にエラーが発生しました: セッションが現在保存されているセッションと一致しません。これは、セッションが作成されてからユーザーがパスワードを変更したか、Facebook がセキュリティ上の理由でセッションを変更したことが原因である可能性があります。

私はgraph.facebook.com/[関数]?access_token=[DBに保存されたアクセストークン]を使用します

私のせいは何ですか?

4

1 に答える 1

2

まず、次の場合、アクセス許可を持つアクセストークンoffline_accessが無効になる可能性があります。

  • ユーザーは自分のプライバシー設定でアプリの認証を解除します
  • ユーザーがパスワードを変更する

期限切れのトークンを処理する方法については、Facebookのブログ投稿を読むことができます。

次に、すべきではありません:

  • を呼び出すときと同じように、URLを使用してAPI URLを直接作成しますgraph.facebook.com/[function]...が、FacebookPHPSDK関数を使用してAPI呼び出しを行います。
  • 使用しているPHPSDKのバージョン($facebook->getSession()v2.x以降)は非推奨です。これが問題の原因である可能性があります。

Facebook PHPSDKv3.xでアクセストークンを処理する方法offline_accessに関するStackoverflowの回答は次のとおりです。

お役に立てば幸いです。

于 2011-06-14T02:47:32.230 に答える