0

Facebook のドキュメントからこのコードを取得して、アプリをフィードに投稿する方法を学び始めました。

アプリのキャンバス URL に移動すると、ダイアログが表示され、テキストを入力して [共有] をクリックすると、タイムラインに投稿されます。ここまでは順調ですね。

しかし、明示的に何かを入力してボタンをクリックする代わりに、投稿がフィードに自動的に送信され、PHP コードのイベントによってトリガーされるように変更したいと考えています。

ただし、これは初心者のような質問であることに気づきました。それを実現するためにコードを調整する方法がわかりません。私の実験では、コードが壊れるか、同じダイアログが表示されます。

PHP がメッセージをフィードに直接投稿し、その直後にアプリのキャンバス URL を表示するにはどうすればよいですか (絶えずリロードして何度も投稿するループに巻き込まれないようにするためです...)。

便宜上、Facebook ドキュメントからの同じコードを次に示します。

<?php 

         $app_id = "YOUR_APP_ID";

         $canvas_page = "YOUR_CANVAS_PAGE_URL";

         $message = "Apps on Facebook.com are cool!";

         $feed_url = "https://www.facebook.com/dialog/feed?app_id=" 
                . $app_id . "&redirect_uri=" . urlencode($canvas_page)
                . "&message=" . $message;

         if (empty($_REQUEST["post_id"])) {
            echo("<script> top.location.href='" . $feed_url . "'</script>");
         } else {
            echo ("Feed Post Id: " . $_REQUEST["post_id"]);
         }
?>
4

1 に答える 1

1

これは、パーミッションを要求することで実現できます(公開パーミッションpublish_streamを参照してください)。

ユーザーがアプリに許可を与えると、ユーザーにフィード ダイアログを表示せずにフィード ストーリーを公開できます。

これにより、ユーザーがその目的のためにアクティブaccess_tokenで使用中のアプリケーションを必要とせずに、コンテンツをユーザーのフィードに公開することもできます。access_token

PHP-SDK を使用してこれを実装するのは非常に簡単です。

$facebook = new Facebook(/*...*/);

$facebook->api('/USER_ID/feed', 'post', array(
  'message'=>'Text entered by user'
));

おそらくpublish_actionsそのタスクにはパーミッションで十分ですが、ドキュメントは開発者サイト全体でまだ更新されていないため、より安全に使用できますpublish_stream(オブジェクトについては参照) statusesuser

パーミッションは、許可するすべてのものに加えて、許可することpublish_streamのスーパーセットです。追加のパブリッシング機能の一部は次のとおりです。publish_actionspublish_actions

  • 友達のフィードに投稿する
  • 質問の投稿
  • メモの作成
  • イベントまたはグループへのコンテンツの投稿
于 2012-05-07T08:20:18.693 に答える