Facebook js sdk:“选择一个朋友”对话框,然后发布到他们的墙上?

时间:2011-03-01 21:54:22

标签: javascript facebook facebook-friends facebook-invite

需要解决该程序。

现在使用新的javascript sdk,在我的“iframe标签”中。


  1. 选择朋友

  2. 张贴在他们的墙上。


  3. 1:未解决

      

    我找不到通过新api弹出“选择朋友”对话框的方法。 FB.ui中唯一提到的是“朋友对话”,用于“邀请朋友”。

         

    也许我需要一个对话框(哪一个)来选择朋友而不是发帖?理想情况下,多朋友选择器,所以我可以发布给用户可以选择的朋友?

    2:解决了

      

    (欢迎任何其他解决方案)

         

    要在朋友圈中发帖,我只需填写“Feed对话框”的“to”参数,如下所示:http://developers.facebook.com/docs/reference/dialogs/feed/


    我找到了一些不那么优雅的解决方案:

      

    要求访问权限管理用户朋友:

    1. 自己弹出多项选择

        

      看起来像重做方向盘,一些FBML页面通过带有朋友选择器的简单提要对话框解决了这个问题,如下所示:http://www.facebook.com/chanel

    2. 使用jquery插件解析好友列表并为我做对话

        

      看起来像是矫枉过正/不能很好地运作


    3. 我觉得我错过了一些东西(这是我对新js sdk的第二次工作),这么简单的任务应该是非常直接的解决。

3 个答案:

答案 0 :(得分:9)

我有同样的问题。虽然回答问题已经很晚了,但它会对某些人有所帮助。这就是回答这个问题的原因。

想要发送邀请时调用此Javascript函数。

function sendRequestViaMultiFriendSelector() {
    FB.ui({
        method: 'apprequests',
        message: "This message is displayed in invitation"
    },send_wall_invitation);

}

function send_wall_invitation(response) {
   // alert(response.to);
    var send_invitation_url=base_url+'send_invitation';
    jQuery.ajax({
        url:send_invitation_url,
        data:{
            to:response.to
            },
        dataType:"json",
        type: 'POST',
        success: function(data){
//            alert("");
        }

    })
}

发送由ajax邀请的朋友阵列,然后为每位朋友发送帖子。 我可以通过PHP API在用户的朋友墙上发布。  试试这个:

$facebook->api('/[FRIEND_ID]/feed', 'post', array(
          'message' => 'test message',
          'link' => 'http://google.com',
          'name' => 'test name',
          'caption' => 'test caption',
          'description' => 'test long description',
      ));

答案 1 :(得分:1)

要“邀请朋友”你必须在那里看: http://developers.facebook.com/docs/reference/dialogs/requests/

一个简单的例子:

FB.ui({method: 'apprequests', message: 'Check out my super site', title:"Invite your friends."});

如果不清楚,请随意提出任何问题。

答案 2 :(得分:0)

您曾经能够使用fb:friend-selector来自动完成用户朋友的自动填充。它stopped working,所以我最终使用jquery ui重新创建它。