【问题标题】:Get a Facebook Page's public posts without an auth token无需身份验证令牌即可获取 Facebook 页面的公开帖子
【发布时间】:2013-08-29 05:55:26
【问题描述】:

是否有可能(使用 facebook graph API)获取Facebook Page 发布的最后 5 个帖子?

我想在 Android 应用中显示此信息,并希望避免使用 Facebook Android SDK 的开销以避免显示“[App] 想访问您的公开个人资料和朋友列表”消息,因为它很烦人且不准确。

例如,以下调用无需身份验证令牌即可工作:https://graph.facebook.com/nike

但这个没有:https://graph.facebook.com/nike/posts

{
   "error": {
      "message": "An access token is required to request this resource.",
      "type": "OAuthException",
      "code": 104
   }
}

我可以在没有身份验证令牌的情况下从该页面上刮下 HTML,但这对于这样一个简单的任务来说似乎有点过头了:https://www.facebook.com/nike/posts

总结一下:

  1. 这真的是 API 的限制吗?

  2. 有没有办法抑制“[App] 想要访问您的 使用 Android SDK 获取没有额外权限的身份验证令牌时的公共个人资料和好友列表”消息?

  3. 是否可以使用服务器端 SDK?

编辑:看起来最好的方法是在服务器端使用a long-lived App Access token

【问题讨论】:

    标签: android facebook facebook-graph-api facebook-php-sdk facebook-android-sdk


    【解决方案1】:

    这真的是 API 的限制吗?

    没有。

    在使用 Android SDK 获取没有额外权限的 auth-token 时,是否有办法抑制“[App] 想要访问您的公开个人资料和好友列表”消息?

    是的。如果您正确阅读了文档 (Post),它清楚地提到需要任何有效的访问令牌来获取页面帖子的详细信息*。因此,您可以使用 App access token,无需任何授权步骤即可获得 - 来自 here 或简单的 GET 请求(服务器端)-

    GET /oauth/access_token?
    client_id={app-id}
    &client_secret={app-secret}
    &grant_type=client_credentials
    

    是否可以使用服务器端 SDK?

    取决于你,你想如何实现。

    *注意:当然,您可以看到的帖子只是公开帖子(即使用户已注销也可以看到);否则,您可能需要具有 read_stream 权限的用户身份验证。

    【讨论】:

    • 谢谢!您的第一个答案与其他答案相矛盾。看起来没有办法纯粹在客户端做到这一点。
    • 实际上不推荐,因为涉及应用凭据。
    • 嗨,我使用了来自服务器端的 Get 请求。这是以字符串格式返回访问令牌。但是 Graph Request 需要 AccessToken 类型的令牌。如何继续戴帽子?
    • 它只使用类型字符串。
    猜你喜欢
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2014-10-14
    • 2017-10-18
    • 2018-01-03
    • 2011-07-24
    相关资源
    最近更新 更多