1

我最近一直在使用 API,主要是 Facebook API,现在是 Instagram 和 Twitter API。但是它们的一个共同点是它们的工作方式,从这个意义上说,用户必须同时在该计算机/网络浏览器上登录到他们的服务。

例如,如果我要创建一个页面,您可以在其中阅读您的 Facebook 提要,那么用户必须在我的页面上创建一个帐户,同时在 Facebook 上登录并授权该应用程序。下一次,如果他使用相同的计算机/网络浏览器并且没有退出 Facebook,那就没问题了。但如果他使用另一台计算机或确实退出了,他将看到 Facebook 登录信息。

我没有在我的数据库中存储任何数据,所有内容都是直接从 Facebook 访问的。

但是像HootSuite这样的服务却不是这样工作的。我可以在 HootSuite 注册一次,选择 Facebook,登录并授权该应用程序,然后在世界上任何一台计算机上访问我的提要,只需在 HootSuite 登录一次。他们如何做到这一点?他们是否与 Facebook 签订了特殊协议,或者这是我可以自己学习和使用的东西(一种服务/每个 Facebook 应用程序开发人员都可以访问的东西)?

他们究竟在数据库中存储了什么?他们是否存储了我的 Facebook 用户名/密码,或者他们发送给 Facebook 以进行确认的一串数据(我没有撤销任何权限)而我没有看到它?

希望你们中的一些人知道这一点,这很有趣。

4

1 回答 1

3

嗨,我目前正在为 hoosuite 开发,看到没有人回答您的问题,我会尝试为您提供一些见解。

Hootsuite 内部使用了 LinkedIn、facebook、Twitter 和其他社交网络提供的开发者 API。有使用这些 API 的文档化方法。通常,它涉及在这些社交网络上创建一个应用程序(这里是一个 hoosuite 应用程序)。这个应用程序在这些网络上有自己的 id。当您在 hoosuite 上创建帐户时,它会要求您添加您的社交网络帐户。

当您单击社交网络名称时,hoosuite 应用程序会向所选社交网络发送访问请求。目标社交网络首先验证您的应用 ID(在本例中为 hoosuite),然后验证用户凭据(用户名和密码),然后向您显示授权屏幕,您希望 hoosuite 应用访问您的个人资料中的哪些数据。

该信息现在被压缩为一个包含这些授权参数的对象以及一个 oauthaccess 令牌被发送回 hoosuite 网站。这些 oauth 令牌有一个生命周期(例如,linkedin 访问令牌生命周期是 60 天),这意味着它的有效期为 60 天。

hoosuite 从不存储您的(twitter、facebook 等网络)用户名或密码,它存储 oauth 令牌值并在您使用 hoosuite 时重复使用。因此,oauth 令牌对于您的社交网络帐户和 hoosuite 帐户是唯一的,它就像一个超级通行证来读取您的数据。

这是我的比喻。希望能帮助到你。

于 2013-05-28T08:40:46.817 回答