从我的Facebook墙上获取私人帖子

时间:2014-03-13 15:57:17

标签: php facebook api facebook-graph-api

首先关闭:我用Google搜索并尝试完成一天,但只运行圈子。 当搜索谷歌我的问题时,我有很多论坛帖子和文章,似乎与描述我的问题的方式相同。但他们的解决方案是另一种方式。

所以我真正想做的事情很简单:

我在Facebook上的大多数状态帖都是专门用于盯着朋友的,但其中一些帖子发给我所有的朋友,因为它们是一些模糊的博客帖子,完全不敏感所以我不在乎公众是否可以看到它们。

好。我有一个自编的PHP主页,我想打印一些我在Facebook墙上写的帖子。 这些帖子在Facebook 上不公开,但应在我的主页上打印(以过滤形式)。

这就是全部。我不能让这个工作(提取帖子)。

我尝试了api explorer(fb-dev-tool)来查看访问令牌是如何工作的,只是试图 使用生成的令牌。工作正常...一个小时,直到令牌到期......

所以我发现博客帖子告诉我要创建一个私人Facebook应用程序。

我这样做了,但是这个应用程序只允许阅读我的个人资料公共数据......比如公共墙(其他人或公司)或公众喜欢的帖子......

我现在甚至不知道创建一个应用程序是否适合我的目的,但用户访问令牌(这似乎是解决我的问题的正确点)似乎总是在一小时后过期。

因此,如果使用应用程序是正确的方式,我需要知道如何将我的个人资料与此(自有)应用程序相关联,或授予访问私人墙上帖子的权利。

大多数解决方案似乎都涉及正在查看api-using页面的用户填写“向我显示墙壁的帖子!”等操作。或者其他的东西。但当然这不是我需要的。为了我的目的,访客甚至不需要拥有Facebook帐户。

[...]

我尝试了什么:

  • 我尝试了api exlorer来了解这些东西是如何工作的。我的意思是。甚至api explorer也是一个应用程序(由facebook编写),可以轻松访问我的私人数据
  • 我尝试使用api explorer生成的密钥 - >他们到期了
  • 我尝试使用官方PHP facebook api:

    $ facebook = new Facebook(array(   'appId'=> 'myAppId',   'secret'=> '我的秘密' ));

    $ foo = $ facebook-> api('/ myprofileid / posts'); // - >只获取公共资料

  • 我尝试使用“自制”应用访问我个人资料的数据

所有这些尝试都失败了,不理解api和数据的工作方式是如何协同工作的......

所以问题是: 如何让toke / app从我的个人资料中获取私人数据? 或者:获取此数据的正确方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分:2)

您需要延长访问权限的到期时间才能执行此操作,然后将长期令牌存储在数据库中。这里有2页(部分)可以帮助解决这个问题:

https://developers.facebook.com/docs/facebook-login/access-tokens/#termtokens

https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

以下是有关扩展令牌的一些信息:

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token} 

您仍然需要定期延长令牌,因为它们会在约60天后过期。