我需要制作一个 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/