【问题标题】:Subscribing to realtime updates for an app that is marked as "native'为标记为“本机”的应用订阅实时更新
【发布时间】:2012-07-15 19:45:24
【问题描述】:

当我按照以下说明进行操作时: http://developers.facebook.com/docs/reference/api/realtime/

即: 1) 使用以下命令检索 access_token: https://graph.facebook.com/oauth/access_token?client_id=<APP_ID>&client_secret=<APP_SECRET>&grant_type=client_credentials

2) 向https://graph.facebook.com/<app-id>/subscriptions?access_token=...发出订阅请求

我收到错误:

{"error":{"message":"(#15) This method is not supported for native apps","type":"OAuthException","code":15}}

我的应用在https://developers.facebook.com/apps/<app id>/advanced 的“应用类型”下被标记为原生应用。 但是,需要明确的是,我正在从 服务器(我打算用作回调服务器的同一台服务器)发出订阅请求。


那么,问题:

  1. 我应该通过其他方式获得 access_token 吗?做 我获取访问令牌的方式 ("grant_type=client_credentials") 表示我正在获取一个应该用于客户端而不是服务器的访问令牌?
  2. 我做错了什么吗?要么, 这只是一个错误/文档错误吗?实时 API 中无处可寻 文档是否说本机应用程序不允许使用实时 API。

相关问题:
How do I subscribe to Facebook Realtime API? 基本上是我的同一个问题,但它不在 facebook.stackoverflow.com 上,并且回答为非答案,所以我认为适合重新发布。

http://facebook.stackoverflow.com/questions/11141333/using-real-time-updates-from-facebook-graph-api-with-a-client-application 是一个相关问题,但我再次从 SERVER 而非客户端发出订阅请求。

【问题讨论】:

    标签: facebook facebook-graph-api real-time native facebook-oauth


    【解决方案1】:

    如果你设置了 canvas_url,你可以做 client_credentials。所以设置本机和画布(服务器)。它将托管您应用的网站版本,这是 FB 授予这种 access_token 所需的。

    【讨论】:

    • 感谢您的回答。我们已经启用了“使用 Facebook 登录的网站”和“移动网络”。您是说我需要启用“Facebook 上的应用程序”并添加 canvas_url 才能使用 client_credentials?如果是这样,您知道为什么会出现这种情况吗?
    • 是的。因为您需要有一个 Web 服务器,即调用客户端凭据的一方。目前无法通过移动设备执行此操作(根据我的理解,这没有任何意义。)
    • 对,我并没有尝试通过移动设备进行操作。无论如何,这就是最终奏效的方法:在https://developers.facebook.com/apps/<appid>/advanced 上将“App Type”设置为“Web”,订阅实时更新,然后将“App Type”设置回“Native/Desktop”。即使将“App Type”切换回“Native/Desktop”,实时更新仍在流入。
    • 再次感谢您抽出宝贵时间查找并回答此问题! :)
    • 哦,有趣,所以我猜通过在 Facebook 开发中设置和取消设置,基本上你必须初始化实时更新。
    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 2013-02-15
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多