如何使用PHP sdk为Facebook显示朋友选择器对话框?

时间:2011-12-14 13:38:06

标签: php facebook facebook-php-sdk

我希望在发布到朋友墙之前显示“选择朋友”对话框,如下所示:

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

我不确定是否可以使用PHP SDK,我在Fb文档中没有找到任何关于它的内容。

我是否还可以使用某种Facebook网址,例如:

$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后,我想将它们添加到Graph 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 个答案:

答案 0 :(得分:3)

这是doc:

您可以使用JavaScript SDK或图谱API执行此操作。

要使用图形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。

当用户点击“发送请求”按钮时,被重定向到“redirect_uri”并附加了shome get(我无法找到get参数的确切名称,但很容易找到)。

UPDATE:

用户点击“发送请求”后,他会被重定向到:

<redirect_uri>?request_ids[0]=XXXX&request_ids[1]=YYYY&request_ids[2]=ZZZZ#_=_

因此,在PHP中,您将在$_GET['request_ids']中找到所选朋友的ID列表。您可以使用该列表在朋友墙上发布内容,方法是使用Graph API。

旁注:必须与您在应用配置页面中指定的网站网址相同。

UPDATE:

对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中指定的脚本使用相应的图谱API请求。