2

重複の可能性:
Facebook offline_access の廃止の影響

特定のケースについてどこにも答えが見つからなかったため、この問題をここに投稿しています。

サーバー側の PHP アプリを作成しました。このアプリは、FB ファン ページに毎週ランダムに当社の製品の 1 つへのリンクを自動的に投稿/表示します。

このスクリプトは 10 日前までうまく機能していましたが、スクリプトを手動で呼び出すと次のエラーが発生します。

Fatal error: Uncaught OAuthException: Error validating access token: Session has expired at unix time 1355862507. The current unix time is 1356217401. thrown in /home/webadmin/virtualsheetmusic.com/html/facebook/API/base_facebook.php on line 1249

これで、問題は渡された access_token にあることがわかりましたが、このアプリケーションで使用している形式で新しいものを生成する方法がわかりません。

これまで使用してきたトークン形式は次のとおりです。

$fanpagetoken = '<REMOVED ACCESS TOKEN FROM TEXT>';

ウォールに投稿するために使用している PHP コードは次のとおりです。

    #Define vars...
$day = strtotime($today);
$day = date("l, F j, Y", $day);

$deadline = strtotime("+1 week");
$deadline = date("l, F j, Y", $deadline);

// Create our Application instance (replace this with your appId and secret).


$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $secret,
));



$attachment = array(
                    'access_token' => $fanpagetoken,

                    'message' => "Sheet Music Showcase for ".$day.":",
                    'name' => $headline,
                    'caption' => "Showcase Expiration: $deadline",
                    'link' => 'http://www.ourwebsite.com/s/'.$createsession,
                    'description' => 'View the complete high quality PDF sheet music file, listen to related audio files and more!',
                    'picture' => 'http://www.virtualsheetmusic.com/images/icons/new_downloadsHome/'.$mainid.'.gif',
                    'actions' => array(array('name' => 'Learn more...', 
                                      'link' => 'http://www.virtualsheetmusic.com/s/'.$createsession))
                    );


$result = $facebook->api('/oursitefanpage/feed/',
                            'post',
                            $attachment);

その形式で新しいトークンを生成する方法は?

どんな助けでも大歓迎です!

ご意見をお寄せいただきありがとうございます

最高、ファブ。

4

1 に答える 1

4

ファンページ用に無期限のトークンを持つことができます。簡単な手順に従います。

  1. 管理者 (つまり、あなたの) の拡張トークン (2 か月の有効期限) を取得します。リンクにアクセスして、拡張トークンを取得します。完璧に動作します:

    offline_access の廃止以降、アクセス トークンの有効期間を延長する方法

  2. このトークンを使用して、ページ/アプリのリストを取得します-

    $facebook->api("/USER_ID/accounts"); 
    
  3. 任意のページの無期限のアクセス トークンを取得します。

    $facebook->api("/PAGE_ID?fields=access_token");
    

( Facebook のデバッグ ツールを使用して、トークンの有効性を確認できます。)

于 2012-12-23T09:54:17.617 に答える