0

从 Facebook 的文档中获取了这段代码,让我开始学习如何让我的应用发布到提要。

它按描述工作,因为当我转到我的应用程序的画布 URL 时,我会看到一个对话框,我可以在其中输入文本,单击“共享”,然后它会发布到我的时间轴中。到现在为止还挺好。

但我想改变它,这样不是显式地输入内容并单击按钮,而是自动将帖子发送到提要,触发我的 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"]);
         }
?>
4

1 回答 1

1

您可以通过要求publish_stream获得许可来实现这一点(请参阅发布许可)。

一旦您的应用程序获得了用户授予的权限,您就可以发布提要故事而不向用户显示提要对话框。

这也允许您将内容发布到用户的提要,而无需用户的活动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(请参阅statuses对象user)。

publish_stream权限是publish_actions允许一切publish_actions允许以及更多的超集。一些额外的发布功能包括:

  • 发布到朋友的订阅源
  • 发布问题
  • 创建笔记
  • 将内容发布到活动或群组
于 2012-05-07T08:20:18.693 回答