从服务器获取用于发布到 Facebook 粉丝页面的持久令牌的步骤是啥
Posted
技术标签:
【中文标题】从服务器获取用于发布到 Facebook 粉丝页面的持久令牌的步骤是啥【英文标题】:What are the Steps to getting a Long Lasting Token For Posting To a Facebook Fan Page from a Server从服务器获取用于发布到 Facebook 粉丝页面的持久令牌的步骤是什么 【发布时间】:2013-08-18 04:20:54 【问题描述】:我在 Facebook 有一个商业页面(在 Facebook 白话中称为粉丝页面)。
每当用户对我的应用执行特定操作时,我都想post to that Page
。我想以页面本身而不是用户的身份发布(即来自我的个人帐户)。该帖子将来自我的外部服务器(我正在使用 restFB)。
我已经完成了授权我的个人帐户的步骤,该帐户具有适当的主页manage_pages
权限。我还获得了该页面的访问令牌。我什至可以按照自己的意愿将其发布到该页面。问题是我(通过他们的开发人员工具图形浏览器)获得的令牌有一个小时的到期时间。我需要它持续更长的时间,最好是永远。
我浏览了互联网,包括 SO 来寻找答案,大多数帖子都指向可怕的 FB 文档,或者模糊地提到将我的外部应用程序连接到 facebook 应用程序并通过它发布。我已经尝试过完成这项工作,但坦率地说,我对整个过程感到困惑(例如,回调地址是什么?)。
无论如何,我很想在getting a long lasting access token
上看到用简单的英语逐步说明,我可以使用这些说明从一个应用程序发布到 Facebook 粉丝专页。
请不要参考 FB 文档。这很糟糕。我至少经历过十几次。
谢谢。
【问题讨论】:
【参考方案1】:您可以按照以下步骤为您的粉丝页面获取永不过期的令牌:
首先,您需要获得长期用户访问令牌(在 2 个月后到期)。为此,请拨打以下电话:
GET /oauth/access_token? grant_type=fb_exchange_token& client_id=app-id& client_secret=app-secret& fb_exchange_token=short-lived-token
更多详情here。如果您对此有任何困难,请告诉我。
使用您在上述步骤中获得的令牌(不是普通令牌,这是这里的主要区别)为您的页面获取永不过期的访问令牌:
$facebook->api("/PAGE_ID?fields=access_token");
所以概念是,要获得长期存在的页面令牌,您应该在进行调用时使用长期存在的用户令牌。
【讨论】:
我想我对 app-id 和 app-secret 感到困惑。如何为页面设置 Facebook 应用程序?脸书应用程序有什么作用?是不是为了更新粉丝专页就需要一个? 是的,您需要一个 facebook 应用程序。没有这样的facebook app for the page
,只有简单的 facebook 应用程序,您可以从这里创建:developers.facebook.com/apps
谢谢。我最终得到了你的建议和 Sebastian C。我希望我能给你们两个奖励。
是否有机会创建新的 FB 应用程序并将其加入我们当前的 FB 页面(我们的 FB 页面有成千上万的粉丝,所以我们不能从零开始)。
在哪里可以发出 GET 请求?【参考方案2】:
@Shadowfax 完全正确。 只是为了完成工作流程:
-
通过 facebook 登录和
manage_pages
权限获取短期用户 access_token。
将此短期用户 access_token 发送到您的服务器
从服务器发出@Shadowfax 请求:
GET /oauth/access_token? grant_type=fb_exchange_token&client_id=your-app-id& client_secret=your-app-secret&fb_exchange_token=short-lived-user-access_token
主机graph.facebook.com
和端口443
。
您必须从服务器发出此请求,因为它包含您的应用密钥。
从服务器,您现在可以通过将用户 access_token 替换为此长寿命版本来查询 facebook
从服务器,使用您的长寿命用户 access_token 获取页面 access_token,或者通过查询用户帐户:
GET /user-id/accounts?access_token=long-live-token
您将获得所有用户的页面及其 id 和 access_token。
或者如果你已经知道它的page_id,你可以直接查询特定的页面
GET /page-id/?fields=access_token&access_token=long-live-token
正如@Shadowfax 所说,只要用户(您)不撤销您的应用权限,此页面长效令牌将永远存在。
【讨论】:
我猜有些错字:2 个月*。我猜不需要更新长期令牌,因为 OP 需要粉丝页面令牌,该令牌将来永远不会过期。 (只是一次查询) 感谢您的错字!我猜他会需要“admin_user”的长寿命 user_token,你不觉得吗? 是的,但只是一次。获取粉丝页面令牌是一次性查询 你说得对,我以前从未见过此更新。再次感谢! 在哪里可以发送 GET 请求?我可以使用developers.facebook.com/tools/explorer 上的表格吗?以上是关于从服务器获取用于发布到 Facebook 粉丝页面的持久令牌的步骤是啥的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 iOS 的 Facebook 新闻提要(粉丝页面)? [关闭]