如何使用PHP sdk for Facebook显示好友选择对话框?

3

我希望在发布到朋友的墙上之前显示“选择好友”对话框,就像这样:

http://miscritscdn.brokenbulbstudios.com/game/assets/news/gifting.png

我不确定PHP SDK是否支持此功能,在Fb文档中没有找到相关内容。

我也可以使用一种Facebook URL,例如:

$link=https://www.facebook.com/dialog/feed?app_id=<your appid>&redirect_uri=<your redirecting link>&link=<link u are posting>&message=<message>.&picture=<picture URL you want to show>&caption=<title>&description=<description>&name=<title>

(这个用于发布到我们自己的墙上)

更新:

在我选择了朋友的UID之后,我想将它们添加到图形API链接中,然后发布到他们的墙上。

if (isset($_GET['request_ids'])) {
    $i = 0;
    $n = count(request_ids);
    while($n!=$i){
            $link = ($link + "&to=" + $request_ids[$i]);
        $i = $i +1;
    }
echo "<script language=javascript>parent.location=''</script>";
}

我的php代码有问题吗?

希望能得到帮助,谢谢。

1个回答

3

这是文件:

您可以使用JavaScript SDK或Graph API来实现此操作。

要使用Graph API,您可以构建以下URL:

https://www.facebook.com/dialog/apprequests
  ?app_id=<your-app-id>
  &redirect_uri=http://www.example.com/response/
  &message=Your%20message%20here
  &display=popup

通过指定不同的"display"值,您可以选择如何显示选择器。可以是页面、弹出窗口、iframe、触摸或wap。
当用户单击“发送请求”按钮时,将重定向到带有一些get参数附加的“redirect_uri”(我无法找到get参数的确切名称,但很容易找到)。
更新:
用户单击“发送请求”后,将被重定向到:
<redirect_uri>?request_ids[0]=XXXX&request_ids[1]=YYYY&request_ids[2]=ZZZZ#_=_

在PHP中,您可以在$_GET['request_ids']中找到所选好友的ID列表。您可以使用该列表通过使用Graph API在好友的墙上发布内容。
附注:您必须拥有与应用程序配置页面中指定的站点URL相同的域。
更新:您的PHP代码改进如下:
if (isset($_GET['request_ids'])) {
    for ($i=0; $i<count(request_ids); $i++){
        $link = ($link + "&to=" + $request_ids[$i]);
    }
    echo "<script language=javascript>parent.location=''</script>";
}

那么,$link 里面是什么? 如果要发布到自己的墙上,您应该直接从在 redirect_uri 中指定的脚本使用适当的 Graph API 请求。


谢谢。我尝试使用PHP的request_ids,但我认为我没有正确实现它。请查看我的更新。实际上,我使用JS脚本在“onclick”按钮之后发送URL。我是否应该使用JS函数来获取request_ids? - Julien
点击“发送请求”按钮后,我在我的URL栏中得到了这个格式:/?request=20819954259&to[0]=<id_num_0>&to[1]=<id_num_1>&to[2]=<id_num_2>&to[3]=<id_num_3>&to[4]=<id_num_4>。 - Julien
谢谢redShaow,$_GET['to']可行。但是似乎我不能在URL中选择多个用户:“http://www.facebook.com/dialog/feed?app_id=<appid>&to[0]=<id0>&to[1]=<id1>”。Facebook只会显示最后一个,<id1>。是否有解决方案? - Julien
如果没有解决方案,我可以限制“选择好友”对话框仅选择一个好友吗? - Julien
你好,我正在尝试您的解决方案,我只需要通过开放图谱选择一个朋友,然后获取他的ID并将其用于在他的墙上发布。使用您的方法第一部分应该没问题,但是在每个用户附近我看到了“邀请”图标...这有点令人困惑,因为用户并没有邀请任何人。是否可以自定义它? - Eugenio
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接