3

我正在尝试创建对用户 Facebook 资源(照片/相册/等)的服务器端访问。我希望用户使用其本机移动应用程序进行身份验证一次,并且服务器将能够在没有用户交互的情况下访问用户的数据。

我试图了解我需要采取哪些步骤才能使其正常工作。

我读过 Facebook 的:Login for Server-side Apps,但我不明白如何使用其中提出的方案——因为我的服务器与用户交互无关(我无法将用户重定向到某个登录对话框)——无论用户是否使用其移动应用程序,服务器都在后台执行自己的操作。例如,令牌到期时我应该怎么做?

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

正如我所看到的,这是我期望的流程:

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

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

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

4

1 回答 1

5

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

当用户登录您的应用程序时,会为您的应用程序提供一个令牌,以及该令牌的到期日期。您可以从您的客户端或服务器使用该令牌,直到它过期。但是,如果用户不继续使用您的应用程序,您的服务器将无法扩展令牌。

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

于 2012-11-24T06:23:26.110 回答