2

OK、これで 2 日間忙しくしていて、頭を悩ませています。私はそれをフォーラムに投稿し、友人に尋ね、広範囲にグーグルで検索し、stackoverflow を調べました。この質問を投稿したのは私が初めてではありませんが、回答の中に答えが見つからなかったため、この新しい質問を作成しています。

これは私がやろうとしていることです: - PHP で Facebook アプリとしてユーザーのウォールにメッセージを投稿したい。- このサーバー ツー サーバーを実行したいので、ダイアログ ボックスやユーザーの操作は必要ありません (彼はその瞬間に芝生を刈っている可能性があります) - このユーザーは私のアプリに許可を与えています。これらの許可は: 1) manage_pages、2) publish_stream、3) read_stream - 私は PHP Facebook SDK を使用しています - これは私のコードです:

/* Facebook */ 
$facebook = new Facebook(array(
    'appId'  => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_APP_SECRET
));
/* string */ 
$accessToken = $facebook->getAccessToken();
/* Array<string> */ 
$postFields = array("message"=>"test2", "access_token"=>$accessToken);

$facebook->api('/{the-id-of-the-facebook-user}/feed','post',$postFields);

これが問題です: 次のエラーが発生し続けます: (#200) ユーザーは、このアクションを実行するアプリケーションを承認していません。

これは、ユーザーが私のアプリを承認したためでたらめなメッセージです (そのユーザーもたまたま私で、アプリのすべての権限を確認しましたが、問題ありません)。

もうどこを見ればいいのかわからないので、どんな提案でも大歓迎です。他の人が以前にこの質問を投稿したことは知っていますが、答えは満足のいくものではありませんでした。よろしくお願いします。

4

3 に答える 3

0

エラーの原因がわかりませんでした。角度もいろいろ試しました。場合によっては、投稿を表示するためにブラウザに入力できる投稿の ID が API から返されたため、壁に何かを投稿することができました (www.facebook.com/{the-id-of-the-post) })。

しかし奇妙なことに、この投稿はタイムラインではなく別のページに表示されていました。このページには、通常の Facebook ページの場合のように上部にユーザー プロファイルがありませんでした。クエリ文字列には、storyID パラメータもありました。自分がどのページにいたのか、タイムラインに表示されなかった理由がわかりませんでした。

私が投稿しようとしていた Facebook ページは企業ページでした。しかし、通常のように「通常の」Facebookページ(人の)に添付されていませんでした. 最終的に、「通常の」facebook ページに属するページのページに投稿することができました。したがって、ほとんどの場合、私のコードは現在機能しています。Facebook SDK、ドキュメント、およびhttp://developers.facebook.comのドキュメントには、まだ改善すべき点がたくさんあると言っておきましょう。特定の操作を実行する方法が明確ではありません。Facebook 機能用の WP7 アプリに一度多くの時間を費やしましたが、今ではこの Web サイトでこれを機能させるために少なくとも 4 日間を費やしました。独自の SDK を作成し、将来的に拡張することにしました。

お時間を割いてご協力いただき、ありがとうございました。スタックオーバーフローが最高!

于 2012-08-17T09:59:12.300 に答える
0

アプリはユーザーのウォールに投稿できません。ウォールに投稿できるのは、ユーザーとして、または別のユーザーとして (つまり、ユーザー間で) のみです。ユーザーに何かを通知したい場合は、代わりに app-to-user Requests API を使用する必要があります。

于 2012-08-10T11:59:43.027 に答える
-1

投稿するフィードが、アクセス許可を付与した同じユーザーからのものである場合はme{the-id-of-the-facebook-user}. 私はこれを試してみましたが、うまくいきました:

$facebook->api(
    '/me/feed/',
    'post',
    array(
    'message' => "my message"
));

access_token を投稿する必要はありません。そして、ユーザーが与えた権限は publish_actions のみでした

于 2012-08-10T09:28:46.957 に答える