Facebook stream.publish的先决条件是什么?

时间:2009-07-20 17:12:00

标签: php api facebook

我想知道是否有人会帮我解决我的stream.publish测试问题。我以为我有所有正确的作品。这是代码:

<?php
require_once 'facebook.php';
$appapikey = 'xxxxxxx';
$appsecret = 'xxxxxxx';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();


$message = "Will this status show up and allow me to dominate the world?!";
$uid = $user_id;
echo $uid;
$facebook->api_client->stream_publish($message,$uid);

我期待的是我的状态改为$ message的内容。相反,我的UID是echo'd,然后它会抛出500错误。我已经允许publish_stream以及offline_access(在我的应用设置中验证,通过我的个人资料),API密钥将这一小段代码挂钩到我的应用。我需要做哪些其他部分才能使这个简单的例子有效?我发现FB文档有点难以组合在一起。

- include是官方的PHP Facebook库

4 个答案:

答案 0 :(得分:6)

stream_publish()需要两个以上的参数:

stream_publish($message, $attachment = null, 
               $action_links = null, $target_id = null, 
               $uid = null)

$ target_id是您要发布的用户或网页,$ uid是正在发布的用户或网页 - 默认为您的会话ID。要完全明确这一点,我想你需要尝试

<?php
require_once 'facebook.php';
$appapikey = 'xxxxxxx';
$appsecret = 'xxxxxxx';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();

$message = "Will this status show up and allow me to dominate the world?!";

echo $user_id;
$facebook->api_client->stream_publish($message,null,null,$user_id,$user_id);

另一种形式可能是:

$app_id = 'xxxxxxx'; 
$facebook->api_client->stream_publish($message,null,null,$user_id,$app_id);

答案 1 :(得分:2)

这个在2011年有效!我有同样的问题。由于Facebook的变化,大部分时间似乎都已过时。我最终找到了一种方法,并在这里做了一篇关于它的快速博客文章:

http://facebookanswers.co.uk/?p=214

还有一个屏幕截图显示结果。确保您还看到有关身份验证的博客文章。

答案 2 :(得分:0)

删除$uid变量,因为它不需要发布。有关详细信息,请参阅此wiki entry

$stream_post_id = $facebook->api_client->stream_publish($message); 
//returns $post_id to use if you want to revert the creation. 

答案 3 :(得分:0)

如果您尝试将streamPublish与iFrame应用程序一起使用,这是一个非常棒的分步教程,不必使用getAppPermissions:

http://thetechnicalexperience.blogspot.com/2010/02/how-to-use-fbconnectstreampublish.html