服务器端的 Facebook 访问 token

标签 facebook facebook-graph-api facebook-c#-sdk facebook-ios-sdk facebook-android-sdk

我正在尝试创建对用户 Facebook 资源(照片/相册/等)的服务器端访问。 我希望用户使用其 native 移动应用程序进行身份验证一次,并且服务器无需用户交互即可访问用户的数据。

我正在尝试了解要使其发挥作用所需采取的步骤。

我已阅读 Facebook 的:Login for Server-side Apps但我无法理解如何使用其中提出的场景 - 因为我的服务器与用户交互无关(我无法将用户重定向到某个登录对话框) - 服务器正在执行自己的操作无论用户是否使用其移动应用程序,都会在后台进行操作。例如, token 过期后我应该做什么?

更重要的是,我希望用户能够在移动设备上直接执行 Facebook 操作,而无需服务器干预。

据我所知,这是我期望的流程:

  1. 用户启动 native 移动应用程序。
  2. 用户在 native 移动应用上使用 Facebook 的 SDK 进行身份验证。
  3. 用户收到一个特殊 token ,可以在服务器端将其转换为访问 token
  4. token 将发送到服务器并存储在那里。
  5. 如果服务器需要访问用户的 Facebook 数据,它会使用此特殊 token 并将其转换为访问 token 。
  6. 当 token 过期时 - 服务器可以使用特殊 token 对其进行扩展,无需任何用户交互。

身份验证后应将哪些数据从移动应用程序发送到服务器。服务器应该如何使用这些数据随时访问用户的 Facebook 资源?

我正在使用 C# Facebook SDK 作为服务器。但我认为这并不重要,我需要了解其中的机制。

最佳答案

如果用户不继续使用该应用程序, token 就会过期。这是设计使然 - 如果用户停止使用应用程序,应用程序不应继续访问用户的帐户。

当用户登录您的应用程序时,系统会向您的应用程序提供一个 token 以及该 token 的到期日期。您可以从客户端或服务器使用该 token ,直至其过期。但是,如果用户不继续使用您的应用程序,您的服务器无法执行任何操作来扩展 token 。

如果用户继续使用您的应用程序,您将有机会更新您的服务器 token 。例如,在 Android 和 iOS SDK 中,如果用户使用您的应用程序发出 Facebook 请求, token 会自动刷新。此时,您可以将刷新后的 token 传输到您的服务器。

关于服务器端的 Facebook 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518354/

相关文章:

Facebook : Get List of Online Friends Using Graph api

javascript - Facebook 登录 OAuth 后 iOS Chrome 共享

asp.net-mvc-3 - 根据验证程序,远程证书无效

php - Facebook 身份验证/ Canvas 不显示

django - python social auth和django,使用Facebook api 2.4的电子邮件为空

ios - 我想使用我的 iOS 应用程序在 Facebook 墙上发布带有自定义文本的视频

Android 将图像上传到用户 Facebook 墙

facebook-graph-api - 如何让用户退出我的 FB 应用程序但不退出 Facebook 网站?

facebook-graph-api - Facebook批量大小

ios - 无限 session 与 facebook ios sdk FBLoginView