5

这很可能是一个冒犯性的愚蠢问题,但我一生都找不到一个快速而简洁的答案。所以我们开始...

我目前正在 C#/MVC4 Web 应用程序中实现 Facebook、Twitter 和 LinkedIn 发布/更新/共享功能。我在每个社交网络上创建了适当的应用程序,网络应用程序的用户可以授权(通过每个网络的标准 OAuth 对话),这样他们就可以一键将配置文件更新发送到多个/所有网络。我已经完成了这个功能的开发,一切都按设计工作;我现在正处于重构代码和相关数据库架构的阶段(用于存储应用程序和用户所需的 OAuth 令牌、从特定网络的 API 中提取的扩展用户信息、个人帖子指标等),这就是我只能摸不着头脑。

没有进一步的告别......问题:

  1. 关于应用程序的 OAuth 令牌:为什么 Facebook 只提供/要求“应用程序秘密”,而 Twitter 和 LinkedIn 都提供/要求“消费者密钥”和“消费者秘密”?

  2. 关于应用程序用户的 OAuth 令牌:为什么 Facebook 只提供/需要“访问令牌”而 Twitter 和 LinkedIn 都提供/需要“访问令牌”和“访问令牌秘密”?

这仅仅是因为 Facebook(2.0 草案 12)与 Twitter 和 LinkedIn(1.0a)实现的 OAuth 协议版本不同,还是完全是其他原因?

4

1 回答 1

1

以下是您的问题的答案,

1.Facebook 在将应用注册为 Facebook 开发者时,确实提供了 App key 和 App secret。

2.Facebook使用OAuth 2.0,所以它只提供了一个访问令牌和刷新令牌(刷新令牌仅在您在指定范围时要求离线访问时提供),访问令牌有效期为1小时,失效后,您需要刷新它或完全获取新的访问令牌。

这种差异是由于 OAuth 协议版本 OAuth 1.0/1.0a 和 OAuth 2.0 的差异造成的。

于 2013-01-01T12:52:04.163 回答