【问题标题】:Use "appId|appSecret" as access_token使用“appId|appSecret”作为 access_token
【发布时间】:2013-08-24 09:45:21
【问题描述】:

我在文档中发现可以使用 appId 和 appSecret 对作为 access_token,格式为“appId|appSecret”。

问题是,当我将这种技术与图形 API 一起使用时,我没有收到完整的信息,只有一些字段(权限在应用程序设置中设置)。当我尝试将它与 FQL 一起使用时,我得到“请求此资源需要用户访问令牌”。例外。

有人可以指导我如何执行 API 请求吗?

我的应用程序在服务器端运行,这就是我选择这些方法的原因。

例如 当我在 https://graph.facebook.com/me/friends?fields=name&access_token="app_id|app_secret" 上运行 GET 请求时,我得到了正确的响应。但是当我运行 https://graph.facebook.com/me/friends?fields=name,notes&access_token="app_id|app_secret" 时,查询只返回朋友的 ID 和姓名。值得一提的是,我的用户已授予该应用程序访问“笔记”的权限。

【问题讨论】:

  • 这不是重复的。我有一个非常狭窄的问题。为什么在使用 Graph API 时使用“app_id|app_secret”作为 access_token 时不起作用?来自文档:还有另一种不需要使用生成的应用令牌来调用 Graph API 的方法。您可以在拨打电话时将您的应用程序 ID 和应用程序密码作为 access_token 参数传递:graph.facebook.com/…
  • 确实如此,您的问题实际上是“如何获取用户访问令牌”-您在问题中粘贴的异常非常清楚问题是什么,您正在使用 API 调用应用访问令牌,它应该带有用户访问令牌

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-fql


【解决方案1】:

我认为这是因为这种访问令牌可以代替应用令牌,但不能代替用户令牌。 使用应用令牌,您可以:

这可用于修改应用的参数、创建和管理测试用户,或阅读应用的见解。应用访问令牌还可用于代表已向您的应用授予开放图发布权限的人员向 Facebook 发布内容。

表示使用这种令牌,您没有任何特殊权限,因此您的请求无法执行。

您可以做的是将用户 access_token 发送到您的服务器,然后使用此令牌执行 API 请求。

【讨论】:

  • 谢谢,这是非常好的信息。有没有办法在没有用户交互的情况下扩展用户令牌?我的应用程序将从服务器端运行,并且与用户没有太多交互(可能每年只有一次......更改设置)
  • 并非没有任何用户交互。但是您可以做的是要求您的用户接受权限,然后获取访问令牌,然后将其交换为可使用 6 个月的长期令牌。这样您的用户只需每 6 个月检查一次您的应用程序...developers.facebook.com/docs/facebook-login/access-tokens/…
  • 太棒了!非常感谢塞巴斯蒂安。
  • @user1671010 如果这回答了你的问题,请务必检查答案的复选标记,以给予帮助:)
猜你喜欢
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2018-01-15
  • 2018-01-15
相关资源
最近更新 更多