【问题标题】:How to get authentication token programmatically using facebook api?如何使用 facebook api 以编程方式获取身份验证令牌?
【发布时间】:2017-07-13 14:11:05
【问题描述】:
我在 facebook 中创建了一个应用程序,并且我有 AppID 和 AppSecret 密钥。现在我想获取该应用程序的身份验证令牌。我可以使用 facebook 提供的图形 api 工具来获取令牌,但我想使用 facebook api 以编程方式获取令牌。我也想在不实际登录 facebook 帐户的情况下获取令牌。有没有办法得到它
以编程方式使用 facebook api?
【问题讨论】:
标签:
c#
facebook
facebook-graph-api
【解决方案1】:
据了解,如果不实际登录 Facebook,您将无法获得它。
【解决方案2】:
如果不通过 Facebook 的 OAuth 流程(Graph Explorer 工具令牌将在两小时后过期),您将无法生成长期访问令牌。
OAuth 过程可以在一定程度上实现自动化,但有一部分要求用户单击按钮以授权您的应用程序访问他们的 Facebook 帐户。因此,Facebook OAuth 是一个两步过程:
- 显示授权 URL 并让用户点击“允许”
- 在用户单击“允许”后检索访问令牌
Temboo SDK 将 Facebook OAuth 流程分为两个步骤 - InitializeOAuth 和 FinalizeOAuth - 您可以在应用中使用它们。这些步骤映射到我上面概述的过程。您可以通过 Temboo here 了解有关如何处理 Facebook OAuth 的更多信息。要查看此行为的实际效果,您可以查看 Temboo examples 页面上的实时示例(提供源代码)。
(完全披露:我在 Temboo 工作)
【解决方案3】:
不,如果没有登录 Facebook,您将无法获得长期访问令牌,因为对于长期访问令牌,您需要拥有短期访问令牌,您将在下面的 Facebook 图形 API 中使用它:
最后一页访问令牌的步骤
1- 您必须通过此 API 为用户获取页面访问令牌:
https://graph.facebook.com/{User-id}/accounts?access_token={access-token}
2- 然后你必须通过下面的 API 刷新保存令牌,这将持续 60 天:
https://graph.facebook.com/oauth/access_token?client_id={your-client-id}&client_secret={client-secret}&grant_type=fb_exchange_token&fb_exchange_token={previous-access-token}