facebook - 使用图形 API 在没有 offline_access 的情况下发布到粉丝页面?

标签 facebook facebook-graph-api

我需要制作一个 web 应用程序来管理帖子,当发布帖子时,有时我应该在 facebook 上的公司粉丝页面之一发布简短的促销信息(取决于帖子的标准)。

这现在可以使用 offline_access 权限:创建应用程序 A,请求 manage_pages、offline_access、publish_stream 权限,使用该访问 token ,您可以在需要图形 API 时连接并发布到页面。

由于 offline_access 已被弃用,并将于 2012 年 5 月被删除,我想知道如何才能发布到公司的不同页面。

我无法实现任何 OAuth 身份验证机制,因为使用 Web 应用程序的最终用户将无法访问作为页面管理员的 fb 帐户,并且发布到 facebook 应该发生在后端进程中,不与用户。

我发现的解决方法是通过在管理员用户流上发帖并标记页面(只需要 publish_stream)来发帖到页面,但是图谱 API 有问题,不允许您在帖子中标记。在代码中(Ruby + Koala)它会是这样的:

oauth = Koala::Facebook::OAuth.new("app-key", "app-secret", nil)
api = Koala::Facebook::API.new(oauth.get_app_access_token)
api.put_wall_post("message @[page-id:1:page-name]", {}, "admin-user")

唯一的问题是 a bug in the facebook API防止您在信息流中标记帖子中的内容。

这样的模型是不是不支持了?有人知道任何解决方法吗?

最佳答案

您可以在您的应用中增加 2 个表列,即 short_access_token 和 long_access_token。

一旦用户对您的应用进行身份验证,就会生成一个访问 token ,并将其存储在 short_access_token 中。然后将此访问 token 传递给:

https://graph.facebook.com/oauth/access_token ? client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN

运行此命令后,将生成一个有效期为 60 天的访问 token 。将其存储在 long_access_token 中。现在,使用这个 long_access_token 60 天。

您可以添加另一个条件,如果 long_access_token 是在超过 30 天前生成的,则只需获取 short_access_token 并生成一个新的 lon_access_token。

您每天只能生成一次长期访问 token ,即第一次。使用这个长期存在的访问 token 来管理 paes(如果您已经获得许可)。

引用:https://developers.facebook.com/roadmap/offline-access-removal/

关于facebook - 使用图形 API 在没有 offline_access 的情况下发布到粉丝页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404197/

相关文章:

iphone - SSO 需要多次尝试登录

iphone - FBConnect (IPHONE),自定义发布对话框

iOS 应用程序。按字母顺序获取 Facebook 好友

Python Facebook SDK : 'module' object has no attribute 'GraphAPI'

facebook-graph-api - 如何获取不会过期的页面访问 token ?

ios - Facebook Friend Picker 示例无法使用开箱即用的 IOS

iphone - iOS Facebook SDK 3.1 登录时添加权限

android - 无法运行示例 Facebook 应用程序

facebook - Golang Facebook 包错误

facebook-graph-api - 代表另一个用户的页面通过 Messenger 进行通信