我正在尝试为用户的Facebook资源(照片/相册/等)创建服务器端访问。 我希望用户使用原生移动应用程序验证一次,并且服务器无需用户互动即可访问用户数据。
我正在努力了解我需要采取的步骤才能使其发挥作用。
我读过Facebook:Login for Server-side Apps但我无法理解如何使用那里提出的方案 - 因为我的服务器与用户交互无关(我无法重定向用户到某个登录对话框) - 服务器在后台执行自己的操作,无论用户是否正在使用其移动应用程序。例如,在令牌到期时我该怎么做?
更多的是,我希望用户能够在移动设备本身上执行直接的Facebook操作,而无需服务器干预。
正如我所看到的,这是我期望的流程:
验证后应从移动应用程序向服务器发送哪些数据。那么服务器应该如何使用这些数据随时访问用户的Facebook资源?
我正在使用C#Facebook SDK作为服务器。但我认为这并不重要,我需要了解机制。
答案 0 :(得分:5)
如果用户不继续使用该应用程序,则令牌过期。这是设计 - 如果用户停止使用该应用程序,应用程序不应继续访问用户的帐户。
当用户登录您的应用程序时,会向您的应用程序提供一个令牌,以及该令牌的到期日期。您可以在客户端或服务器上使用该令牌,直到它过期为止。但是,如果用户不继续使用您的应用程序,则服务器无法扩展令牌。
如果用户继续使用您的应用程序,您将有机会更新服务器令牌。例如,在Android和iOS SDK中,如果用户使用您的应用程序发出facebook请求,则会自动刷新令牌。那时,您可以将刷新的令牌传输到您的服务器。