首先关闭:我用Google搜索并尝试完成一天,但只运行圈子。 当搜索谷歌我的问题时,我有很多论坛帖子和文章,似乎与描述我的问题的方式相同。但他们的解决方案是另一种方式。
所以我真正想做的事情很简单:
我在Facebook上的大多数状态帖都是专门用于盯着朋友的,但其中一些帖子发给我所有的朋友,因为它们是一些模糊的博客帖子,完全不敏感所以我不在乎公众是否可以看到它们。
好。我有一个自编的PHP主页,我想打印一些我在Facebook墙上写的帖子。 这些帖子在Facebook 上不公开,但应在我的主页上打印(以过滤形式)。
这就是全部。我不能让这个工作(提取帖子)。
我尝试了api explorer(fb-dev-tool)来查看访问令牌是如何工作的,只是试图 使用生成的令牌。工作正常...一个小时,直到令牌到期......
所以我发现博客帖子告诉我要创建一个私人Facebook应用程序。
我这样做了,但是这个应用程序只允许阅读我的个人资料公共数据......比如公共墙(其他人或公司)或公众喜欢的帖子......
我现在甚至不知道创建一个应用程序是否适合我的目的,但用户访问令牌(这似乎是解决我的问题的正确点)似乎总是在一小时后过期。
因此,如果使用应用程序是正确的方式,我需要知道如何将我的个人资料与此(自有)应用程序相关联,或授予访问私人墙上帖子的权利。
大多数解决方案似乎都涉及正在查看api-using页面的用户填写“向我显示墙壁的帖子!”等操作。或者其他的东西。但当然这不是我需要的。为了我的目的,访客甚至不需要拥有Facebook帐户。
[...]
我尝试了什么:
我尝试使用官方PHP facebook api:
$ facebook = new Facebook(array( 'appId'=> 'myAppId', 'secret'=> '我的秘密' ));
$ foo = $ facebook-> api('/ myprofileid / posts'); // - >只获取公共资料
我尝试使用“自制”应用访问我个人资料的数据
所有这些尝试都失败了,不理解api和数据的工作方式是如何协同工作的......
所以问题是: 如何让toke / app从我的个人资料中获取私人数据? 或者:获取此数据的正确方法是什么?
提前致谢!
答案 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天后过期。