Facebook 使用Graph API在没有离线访问的情况下发布到风扇页面?

Facebook 使用Graph API在没有离线访问的情况下发布到风扇页面?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我需要制作一个web应用程序来管理帖子,当发布帖子时,有时我应该在facebook的某个公司粉丝页面上发布一条简短的促销消息(取决于帖子的标准) 现在可以使用脱机访问权限:创建应用程序A、请求管理页面、脱机访问、发布流权限,并使用该访问令牌,您可以在希望连接到图形api和发布到页面时进行连接 由于offline_access已被弃用,并将于2012年5月被删除,我想知道如何将其发布到公司的不同页面 我无法实现任何OAuth身份验证机制,因为使用web应用程序的最终用户将无法访问作为页面管理员的f

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

现在可以使用脱机访问权限:创建应用程序A、请求管理页面、脱机访问、发布流权限,并使用该访问令牌,您可以在希望连接到图形api和发布到页面时进行连接

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

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

我发现的一个解决方法是通过在管理员用户流上发布并标记页面(这只需要发布流)来发布到页面,但Graph 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")
唯一的问题是阻止您将帖子中的内容标记到流中


这种模式是否不再受到支持?有人知道任何解决方法吗?

您唯一的解决方法是让应用程序用户页面管理员能够访问各种页面,因此当您在页面的墙上发布时,它可以作为页面而不是作为用户发布。但是,根据Facebook的新规则,您只能将“有效”用户访问令牌扩展到60天。但是有了60天的用户令牌,您就可以获得一个60页的访问令牌,这样您就可以作为页面发布到页面


如果您不需要以页面的形式发布到页面,那么不需要将该用户附加为页面管理员,这样做就非常简单了。让他们成为普通用户。

您可以在应用程序中增加2个表列,即短访问令牌和长访问令牌

一旦用户验证了您的应用程序,就会生成一个访问令牌,将其存储在简短的\u访问\u令牌中。然后将此访问令牌传递给:

?? 客户端\u id=应用程序\u id和客户端\u机密=应用程序\u机密和授权\u类型=fb\u交换\u令牌和fb\u交换\u令牌=现有的\u访问\u令牌

运行此操作后,将生成有效期为60天的访问令牌。将其存储在长\u访问\u令牌中。现在,使用这个长访问令牌60天

您可以添加另一个条件,如果长\u访问\u令牌是在30天前生成的,只需获取短\u访问\u令牌并生成新的长\u访问\u令牌即可

您每天只能生成一次长寿命访问令牌,即第一次。使用此长期访问令牌管理PAE(如果您已经获得了权限)


Ref:

您提供的链接包含我的问题的解决方案(场景5:页面访问令牌),因此我接受您的答案。当我第一次发布问题时,该页面未完成。很好的发现。