web-dev-qa-db-ja.com

Facebook Graphを使用して、単にjavascriptでウォールメッセージを投稿する

Facebookで「オブジェクトゲームで8/10を獲得しました」というメッセージをURLとしてユーザーのウォールに投稿するにはどうすればよいですか?

ユーザーログインの詳細を処理したくないので、API全体を使用する必要は本当にありません。 Facebookが認証してメッセージを投稿する必要があるかどうかは気にしません。

新しいGraph APIとJavaScriptを使用できますか?

40
Glycerine

注4/16/2011:stream.publishは廃止されたようです。これを行う新しい方法があります: http:// developers.facebook.com/docs/reference/dialogs/feed/

このようなものを使用して壁に公開できます。ユーザーは送信する前に確認する必要があります。 FB.initを使用し、JS SDKリンクを含める必要があることを忘れないでください。

 function fb_publish() {
     FB.ui(
       {
         method: 'stream.publish',
         message: 'Message here.',
         attachment: {
           name: 'Name here',
           caption: 'Caption here.',
           description: (
             'description here'
           ),
           href: 'url here'
         },
         action_links: [
           { text: 'Code', href: 'action url here' }
         ],
         user_Prompt_message: 'Personal message here'
       },
       function(response) {
         if (response && response.post_id) {
           alert('Post was published.');
         } else {
           alert('Post was not published.');
         }
       }
     );  
  }
58
Soufiane Hassou

壁に投稿 は、壁にメッセージを共有するかどうかのダイアログボックスを表示します。しかし、ユーザーが既に「壁に投稿」許可を与えていると仮定して、ユーザーの壁に静かにメッセージを投稿したかった。

FB.api('/me/feed', 'post', {
      message:'my_message',
      link:YOUR_SITE_URL,
      picture:picture_url
      name: 'Post name',
      description: 'description'
 },function(data) {
      console.log(data);
 });
12
Nehal

クロスドメインコールを行うプロキシがあることを考えると、単純にこれを行うことができます...

この例では、YourProxyMethodはハッシュのようなjQuery.ajaxを受け取り、サーバー側にポストを作成し、成功/エラーコールバックで応答を返します。通常のプロキシで行う必要があります。

秘Theは、URLにapp_idとaccess_tokenを含めることです。また、FBアプリには、この呼び出しを行うための十分な権限が必要です。

YourProxyMethod({
  url : "https://graph.facebook.com/ID/feed?app_id=APP_ID&access_token=ACCESS_TOKEN",
  method : "post",
  params : {
    message : "message",
    name : "name",
    caption : "caption",
    description  : "desc"
  },
  success : function(response) {
    console.log(response);
  },
  error : function(response) {
    console.log("Error!");
    console.log(response);
  }
});
3
Mayank Jain