2012-08-06 107 views
2

需要通过PHP将网站上的故事发布到指定的Facebook页面。离线访问权限已过时,所以我基本上需要获取用户访问令牌,以便我可以获取页面访问令牌(以页面形式发布),但这些令牌过期并扩展它们需要直接要求用户在弹出窗口中扩展权限(正确我如果我错了)。获取Facebook页面访问令牌以自动发布到Facebook页面墙

因此,也许有一种方法在后台登录可以这么说,所以,如果用户访问令牌已过期,我在登录用户,并获得新的访问令牌?或者,也许有一种方法来获得永无止境的用户访问令牌,并通过它获得永无止境的页面访问令牌?

不明白为什么它如此很难做到,尤其是如果我自己的网站和Facebook页面,其中我愿意发布到。

回答

5

我刚刚发现了如何做到这一点,搜索计算器的提问,使我可以回答这个问题:)

首先,它不是你要问延长访问令牌的用户,这是你。您需要扩展自己的用户访问令牌。您的用户的访问令牌可以在https://developers.facebook.com/tools/accesstoken/的名称'用户令牌'下找到。

下一步是通过提出这个要求来扩展此令牌的生活:

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

{app-id}{app-secret}是在你的应用在developers.facebook.com仪表板上的信息和{short-lived-token}是“用户令牌“,你刚刚找到。

您不必通过php SDK进行调用,您可以使用浏览器来请求页面graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}(注意:它返回值为access_token={access-token}&expires={seconds},因此请不要复制整个内容)。

现在,当你使用这个扩展的用户令牌你的页面访问令牌,这将是不朽的。使用新的令牌进行此API调用(注意:在进行调用之前,您必须授予进行此调用的权限'manage_pages'和稍后发布到页面的'publish_actions'。最简单的方法是点击在https://developers.facebook.com/tools/explorer/“获得访问令牌”按钮,你需要给权限是“扩展权限”选项卡下):

GET /me/accounts 

你会得到你的页面的列表和他们的一些信息与访问令牌一起为他们每个人。

那些访问令牌不会过期。你可以检查在https://developers.facebook.com/tools/debug/

+0

这节省了我的一天。非常感谢你!你的赏金在路上 – 2017-03-20 22:16:22

0

您需要为您的页面创建一个连接器应用程序,然后为您的应用程序获取永久访问令牌。您可以在Facebook文档的Authenticating as an App页面上看到此过程的详细信息。

+0

真的有可能发布的应用程序访问令牌的东西?在我看来,这种令牌只允许检索信息。如果我在调试器中测试应用程序访问令牌,则只有应用程序标识;如果我用适当的权限测试用户access_token,那么我也会看到权限。 – banesto 2012-08-06 13:06:42

+0

我不认为这会起作用,应用程序access_token不会为帐户连接授予适当的权限。你需要一个用户access_token来检索页面的access_token – TommyBs 2012-08-06 13:31:48

+0

@TommyBs如何在没有重定向的情况下完成?我有用户,通过,appId,appSecret - 我可以使用一些API调用获取新用户access_token? – banesto 2012-08-06 13:35:43

相关问题