我花了this code from Facebook's documentation让我开始学习如何让我的应用发布到Feed中。
它按照描述的方式工作,因为当我转到我的应用程序的画布URL时,我会看到一个对话框,我可以在其中输入文本,单击“共享”,然后将其发布到我的时间轴中。到目前为止,非常好。
但我想改变它,以便不是明确地输入内容并单击按钮,而是自动将帖子发送到Feed,在我的PHP代码中触发事件。
然而,我意识到这是一个新手的问题,我无法弄清楚如何调整代码来实现这一点。我的实验要么只是破坏代码,要么以相同的对话结束。
如何让PHP直接在邮件中发布邮件,然后立即显示应用程序的画布URL(以免陷入不断重新加载并一遍又一遍地发布...)?
为方便起见,这里有与Facebook文档相同的代码:
<?php
$app_id = "YOUR_APP_ID";
$canvas_page = "YOUR_CANVAS_PAGE_URL";
$message = "Apps on Facebook.com are cool!";
$feed_url = "https://www.facebook.com/dialog/feed?app_id="
. $app_id . "&redirect_uri=" . urlencode($canvas_page)
. "&message=" . $message;
if (empty($_REQUEST["post_id"])) {
echo("<script> top.location.href='" . $feed_url . "'</script>");
} else {
echo ("Feed Post Id: " . $_REQUEST["post_id"]);
}
?>
答案 0 :(得分:1)
您可以通过要求publish_stream
权限来实现此目的(请参阅Publishing Permissions)。
一旦您的应用获得用户授予的权限,您就可以发布Feed故事而不向用户显示Feed对话。
这也允许您将内容发布到用户的Feed,而无需用户的有效access_token
并为此目的使用应用access_token
。
使用PHP-SDK实现这一点非常容易:
$facebook = new Facebook(/*...*/);
$facebook->api('/USER_ID/feed', 'post', array(
'message'=>'Text entered by user'
));
对于该任务,publish_actions
权限可能就足够了,但是开发者网站上的文档尚未更新,因此使用publish_stream
更安全(user
请publish_stream
}对象)。
publish_actions
权限是publish_actions
的超集,允许{{1}}允许的所有内容以及更多内容。一些额外的发布功能是:
- 发布到朋友的Feed
- 发布问题
- 创建笔记
- 将内容发布到活动或群组