代码之家  ›  专栏  ›  技术社区  ›  Glycerine

使用facebook图表只需使用javascript发布一条墙消息

  •  40
  • Glycerine  · 技术社区  · 14 年前

    在Facebook上,我怎样才能在用户的墙上贴出一条信息,上面写着“我在Objects游戏中得了8/10分”,然后是一个网址?

    我真的不想使用完整的API,因为我不想处理用户登录的详细信息。我不介意Facebook是否需要认证然后发布消息。

    是否可以使用新的图形API和JavaScript?

    3 回复  |  直到 14 年前
        1
  •  58
  •   Soufiane Hassou    12 年前

    注:4/16/2011: stream.publish似乎已被弃用,有一种新的方法可以做到这一点: http://developers.facebook.com/docs/reference/dialogs/feed/

    您可以使用类似的内容发布到墙,用户需要在发送前进行确认。 不要忘记,您需要使用fb.init并包含JSSDK链接。

     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.');
             }
           }
         );  
      }
    
        2
  •  12
  •   Nehal    12 年前

    Post on wall 将显示一个对话框以在墙上共享消息。但是我想在用户的墙上悄悄地发布消息,假设用户已经授予了“在墙上发布”的权限。

    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);
     });
    
        3
  •  3
  •   Mayank Jain    13 年前

    考虑到您有一个代理来进行跨域调用,您可以简单地这样做…

    在本例中,您的代理方法采用类似jquery.ajax的哈希,进行服务器端POST,并在成功/错误回调中返回响应。任何普通代理都应该这样做。

    诀窍是在URL irself中包含app_id和access_令牌。 此外,您的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);
      }
    });