如何在没有access_token的情况下显示来自我网站的Facebook Feed消息?

我有一个Facebook网站(网站,而不是profil墙),并希望在网页上显示消息提要。 如果我使用这已经可以了

https://graph.facebook.com/177610425663218/feed 

但我需要一个access_token。 使用Graph Explorer我可以生成临时令牌。

我知道我可以创建OAuth,但我不希望我的网页的每个访问者只是为了查看提要而登录到Facebook。 必须有另一种方式……也许使用PHP而不是Javascript?

我不认为你可以在没有访问令牌的情况下做到这一点,但请在此处查看我的答案,了解获取一个并检索所需Feed的详细步骤。

https://developers.facebook.com/docs/plugins/提供了可以嵌入的所有插件的列表。 但是,如果要向非fb登录用户显示提要,则不起作用。

要解决您的问题 – 请使用服务器端脚本来访问此源并显示它。 如果此Feed来自FB页面,那么您将需要具有“manage_pages”权限的访问令牌。 使用它,您可以使用以下(PHP)代码获取内容:

 $response=file_get_contents("https://graph.facebook.com/".$id."/feed&access_token=".$facebook_access_token); $response_array=json_decode($response,true); // $id: Page ID 

您还可以通过添加分页参数(如since,limit,until等)来自定义此查询。有关文档,请参阅https://developers.facebook.com/docs/reference/api/ 。

这种方法可以带来以下优势:

  • 您的访问令牌在您的服务器上是安全的,对公众不可见。
  • 即使是未登录的用户也可以看到您的Feed。
  • 您可以自动控制UI,从而自定义Feed的外观。

缺点:

  • 需要您编写代码并主动维护一段代码,除了代理之外什么都不做。 每当FB更改其对象的结构时,您将需要更改此代码。

您可以使用https://www.facebook.com/feeds/page.php?id=&format=json这将返回一个json对象,不需要访问令牌。

您还可以使用不同的格式,如xml和rss20。

希望这可以帮助。

虽然这个问题已经得到解答。 我希望这可以帮助别人。

我一直在开发一个内部CMS的插件,需要直接从用户url中提取facebook。 这就是我最终的结果。

 $url = 'url_pulled_from_database'; $url = str_replace('http://www.', 'http://graph.', $url); $get_id = file_get_contents($url); $get_id = json_decode($get_id, true); $fbID = $get_id['id']; //THEN CALL THE FUNCTION fb_parse_feed($fbID, $maxnumber); 

我不能相信fb_parse_feed函数,但你可以在这里找到它https://gist.github.com/banago/3864515

一旦实现,它就像使用url上的任何公共页面上的魅力一样工作。

在Windows 8商店应用程序中执行此操作,这似乎工作

url =“ https://graph.facebook.com/me?fields=feed&access_token= ”+ fbtoken;