2

同様の質問があります:新しい PHP SDK (3.XX) を使用して許可を求めていますが、私の問題は解決しません。

私のアプリケーションは、FB ユーザーがフォーラムに投稿できるようにする Facebook タブ アプリケーション (フォーラム) です。ここまでは順調ですね。承認は正常に機能します。ここで、アプリケーションを少し拡張して、スレッドを購読しているユーザーがアプリをタイムラインに投稿できるようにしたいと考えています。

私がテストとして試しているのは次のとおりです。

    require_once('./includes/facebook.php');
$facebook = new Facebook(array(
    'appId'  => $CFG["appid"],
    'secret' => $CFG["appsecret"],
    'oauth' => true,
    'scope' => 'status_update,publish_stream,publish_actions',
    'cookie' => true
));
$facebookid = '';
$facebookid = $facebook->getUser();
if (!empty($facebookid))
{
    $facebook_info = array();
    $facebook_info=$facebook->api('/me');
    $facebook->api('/me/feed', 'POST',
                                array(
                                  'link' => 'www.example.com',
                                  'message' => 'Posting with the PHP SDK!'
                             ));

}

しかし、これによりエラーが発生します: Fatal error: Uncaught OAuthException: (#200) The user has not Authorized the application to perform this action throws in /home/facebook/public_html/demo/forum/includes/base_facebook.php on line 1271

私が間違っていることについて何か考えはありますか?アプリケーション設定 (developers.facebook.com) で同じ権限を追加しようとしましたが、やはりうまくいきませんでした。確かに何かが足りないのですが、これは何ですか?

ありがとうございました

4

1 に答える 1

0

base_facebook.php と、使用しているコードから、Facebook PHP-SDK ライブラリを使用していると思われます。publish_stream現在は同じものなので、publish_actionsスキップできます。status_update見たことがない。ステータスを投稿するには、必要なのはpublish_actions. 更新されたライブラリを使用していることを確認してください (随時更新されます)。これは github でダウンロードできます。そのライブラリでも同様のエラーが発生し、その理由がわかりませんでした。そのため、それほど複雑ではない独自の認証プロセスを作成しました。今のところ、私が頭に浮かぶのは、あなたが要求する許可を確認し、ユーザーがアプリを承認しているかどうかを確認する必要があるということだけです (そのライブラリはgetUser();)、最新バージョンのライブラリがあることを確認します。すべてがうまくいかない場合は、単純な認証 URL を試して、API から取得したものを出力してデバッグしてください。また、コールバック URL が常に同じであることを確認してください。これが役立つことを願っています...

于 2013-10-09T10:23:38.517 に答える