为什么从Facebook获得访问令牌/ appId / apisecret和/或我应该存储它们?

时间:2012-02-17 06:37:09

标签: php mysql facebook oauth

为什么我需要获取访问令牌?另外,我应该存储这个吗?我需要获取其他信息吗?例如,facebook作为appId和ApiSecret。获得这些有什么好处?另外,我应该存储这些吗?

如果我在用户登录时将这些存储到mysql中,我需要用户检查吗?登录前?我不明白这是否有意义,因为第一次用户没有这些信息?

这些会过期吗?因此,当用户登录时,我是否必须不断检查并更换旧的?或者他们是否继续访问我的页面?

我目前正在搞乱facebook的php sdk,我的sql中还没有这些,但是我仍然可以在我的页面上建立一个输入字段并将其传递到我的facebook的feed中。我能够获取用户的信息和其他内容,但为什么我需要访问令牌/ appid / apisecret?

谢谢!我很困惑!

2 个答案:

答案 0 :(得分:2)

如果您想以任何方式与Facebook的API进行互动,您需要向Facebook表明身份。这就是访问令牌的用途。它允许您使用该令牌调用Facebook的API,而Facebook知道它就是您。

当您注册Facebook应用程序时,会向您提供应用程序ID和密码(https://developers.facebook.com/apps)。 App ID和App Secret是用于API调用的唯一值,例如从您的应用/网站发布新闻源。当您将它们用作PHP SDK的一部分时,您可以进行API调用,涉及/关于/使用已授予您应用程序权限的用户(例如获取其信息,组权限等)。

如果您尝试将Facebook身份验证集成到网站中,则需要注册应用程序才能执行此操作。作为首次登录过程的一部分,将要求用户授予您的网站访问其Facebook信息的权限,然后在登录过程中使用该信息。

您通常不需要在数据库中存储访问令牌或App Id / App Secret。 Facebook PHP SDK负责在正常使用情况下为您处理这些事情。您可能现在可以向Facebook发送输入字段的原因是您当前可能已登录到Facebook,并且正在使用您的会话cookie来执行此操作。

如果您还没有,可能需要在https://developers.facebook.com/docs/阅读。

答案 1 :(得分:2)

1.为什么我需要获取访问令牌?

访问令牌证明您的应用程序需要使用当前登录用户信息的权限。

2.我应该存储吗?

不需要。当用户使用Facebook连接到您的应用程序时,您的SDK会自动使用您的appid获取它们。

第3。我是否需要获取其他信息(facebook为appId和ApiSecret)?

是的,Facebook需要他们来验证您的应用。您需要使用theese初始化您的SDK。

4.如果我在用户登录时将这些存储到mysql中,我需要用户检查吗?在登录之前?

使用APP ID和SECRET初始化您的应用程序后,您可以获取当前Facebook用户的ID 您可以保存在数据库中 FacebookID->您网站中用户的用户ID。

如果当前的FacebookID与您网站中的用户匹配。您可以将其登录到其他重定向到注册表单

5.这些会过期吗? 这将由SDK处理。您只需要检查当前登录的Facebook用户是否是您的site.APPID和APPSECRET的用户不会过期。

6.为什么我需要访问令牌/ appid / apisecret? 因为OAuth 2.0涉及三个不同的步骤:用户身份验证,应用授权和应用身份验证。 请参阅https://developers.facebook.com/docs/authentication/