0

私は、顧客の Facebook ページ ウォールに顧客に代わって投稿するために使用したい Facebook アプリを持っています。アプリを認証するときにアクセストークンを取得するように設定しましたが、ウォールに投稿すると、次のエラーが表示されます:「OAuthException: アクセストークンの検証中にエラーが発生しました: ユーザーがログインしたため、セッションは無効です。アウト。"

ログインせずにスクリプトから投稿するにはどうすればよいですか?

これが私のコードです:

include_once('fb-php-sdk/src/facebook.php');
$facebook = new Facebook(array(
    'appId' => 'XXX',
    'secret' => 'XXX',
));
try {
    $page_id = '215133535279290'; //page id of the customer's facebook page
    $args = array(
        'access_token' => 'XXX', //access token received when user authenticated app
        'message'      => 'A test message'
    );
    $post_id = $facebook->api("/$page_id/feed","post",$args);
} catch (FacebookApiException $e) {
echo "Error:" . $e;
}
4

2 に答える 2

0

新しい Facebook API には、拡張アクセス トークンと呼ばれるものがあり (オフライン アクセスに取って代わります: https://developers.facebook.com/roadmap/offline-access-removal/だと思います)、最大 60 日間 (またはそれ)。これを使用するには、Web サイトからログインするときにアクセス トークンを取得するだけです。

$token = $facebook->getAccessToken();

それを Db に保存し、後でこのトークンを使用します。

$facebook = new Facebook();
$facebook->setAccessToken($accessTokenFromDB);

その後、ユーザーがログインしているかのように続行できるはずです。

ユーザーがログアウトしている部分については、古いバージョンではなく最新バージョンの API を使用していることを確認し、「シナリオ 2: 以前に offline_access を要求していた場合 - 4/30/ 更新2012」リンクしたページの見出し。

10 月 3 日までは使い続けることができますがoffline_access、2 か月後に実際にオフになり、コードを書き直す必要がある場合はどうすればよいでしょうか。

于 2012-08-02T13:04:34.163 に答える
0

Get the publish_stream extended permission. Once you have this permission you can post feed stories using your app access token while the user is offline. There is no need for offline_access permissions or saving and using a user access token in this scenario.

于 2012-08-02T15:16:05.933 に答える