android - 使用 2016 Facebook SDK 使页面访问 token 永不过期?

标签 android ios facebook facebook-graph-api facebook-access-token

我们正在构建的应用程序是一款 iOS 和 Android 移动应用程序,它将高中生与非营利组织配对,以帮助管理他们的 Facebook 页面。我们将每个学生分配到一个非营利组织,让他们成为 Facebook 页面的管理员,并允许他们代表该组织创建帖子以吸引新受众。然后,每个学生都会获得一个分数,其中包括该学生在页面上的帖子所获得的点赞、评论、分享等。

我们遇到的问题是 Facebook Graph API。我们需要熟悉当前 Facebook SDK 的人来帮助我们制定更好的计划来检索特定数据。

目前,我们已经创建了一个个人资料,作为我们平台上每个非营利 Facebook 页面的管理员。我们使用此管理员访问权限来检索每个 Facebook 页面的用户访问 token 和页面访问 token 。但使用新的 SDK,我们只能使页面访问 token 持续 60 天,这使得我们必须不断刷新 token 才能检索数据。然而,当我们刷新时,Facebook 要求我们使用用户名和密码进行身份验证,这会减慢我们的后端速度,并且很有可能导致服务器崩溃。此外,这种方法会增加我们每天向 Facebook 发出的数据请求量,从而导致当我们向应用程序添加更多用户时,Facebook 可能会完全关闭我们的访问权限。

所以我们的问题实际上在于这个页面访问 token ,因为我们正在尝试从多个不同的 Facebook 页面查询数据。我们请求的数据也非常具体,因为我们只希望页面上特定“admin_creator”(也称为学生,而不是任何其他管理员)发布的帖子中的数据来为学生分配分数。

有没有办法让当前的 Facebook SDK 的页面访问 token 永不过期?有一些帖子描述了这个过程,但它们是 2014 年的,而不是当前版本。另外,是否有比我们当前的方法更好的方法来检索我们需要的特定数据?

最佳答案

步骤:

  1. 获取具有manage_pages权限的user-access-token
  2. 使用扩展 token (在服务器端进行,因为它涉及应用程序 secret )

    https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={your_app_id}&client_secret={your_app_secret}&fb_exchange_token={user_token_from_last_step}

  3. 使用上述步骤中的扩展 token 并使用 API-

    /v2.5/{page-id}?fields=access_token
    

    您将获得页面访问 token 作为响应,该 token 永不过期。

我认为您已完成第 2 步,只需按照第 3 步操作即可。

我建议您浏览this page关于访问 token 之类的事情会更加清晰。

关于android - 使用 2016 Facebook SDK 使页面访问 token 永不过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34891245/

相关文章:

iphone - Facebook Connect 发布状态更新

android - 具有可折叠工具栏的BottomSheetDialog

java - LIBGDX 平铺 map 不使用透明度

ios - 使用 Swift 在整个应用程序中更改 UILabel 文本颜色

objective-c - 使用 OpenAL 在 iOS 上进行离线录音

php - 提交表单时 Facebook 应用程序中的签名请求不可用?

Facebook 和 : image appears blank

android - 为什么我的 GCM 通知被截断了? (Cordova PushPlugin)

java - Android 2.3 使用 Fragment 时保持 ListView 位置

ios - 如何在预定义的矩形中显示图像的缩放部分?