我在互联网上查看了一些关于此的信息,但我发现的只是 SDK 版本 2.XX,现在 3.0.0 版本无法正常工作。
我需要的是获取用户信息并将其用作服务器,以便随时发布而不依赖于 cookie。
知道如何做到这一点吗?旧教程建议是这样的:
$facebook->getSession()
在会议上,我会得到钥匙,但这种方法不再存在。知道如何获取会话密钥并重新使用它吗?
谢谢!
我在互联网上查看了一些关于此的信息,但我发现的只是 SDK 版本 2.XX,现在 3.0.0 版本无法正常工作。
我需要的是获取用户信息并将其用作服务器,以便随时发布而不依赖于 cookie。
知道如何做到这一点吗?旧教程建议是这样的:
$facebook->getSession()
在会议上,我会得到钥匙,但这种方法不再存在。知道如何获取会话密钥并重新使用它吗?
谢谢!
如果您需要“无限”会话,请请求offline_access
许可。从那里,您必须access_token
从会话中获取并将其存储在数据库中。
Facebook 为 PHP 提供的 SDK 旨在在用户浏览您的网站时被调用和使用 - 在没有用户直接参与的情况下执行 facebook API 调用的操作需要更强大的东西,它使用相同的方法但保存了令牌并由 cronjobs 或后台进程。
Facebook 的文档中详细介绍了用于验证和授予权限的 oAuth 2.0 流程。
http://developers.facebook.com/docs/authentication/
您可以手动执行此处描述的逻辑,甚至无需使用标准 HTTP 请求库(如 CURL)使用 SDK。基本上,当用户第一次希望授予访问权限时,需要向 facebook 发送请求,此时浏览器应完全重定向到 FB 登录/权限对话框。您可以在此查询中指定您需要的权限。您可以使用该redirect_uri
参数将其指向应用程序中的端点,然后该端点获取 Facebook 返回的数据,将其发送回以获取访问令牌,然后将最终的 oAuth 令牌保存到与该用户关联的文件或数据库行中。
对于您描述的那种操作,您需要在offline_access
向 Facebook 进行 URL 调用时请求许可。这将生成一个永久有效的令牌,直到用户使用“Aps”界面撤销其 Facebook 帐户中的权限。
您可以在此处了解有关 oAuth 的更多信息:http: //oauth.net/2/
我还强烈建议订阅 Facebook 的 Developer RSS feed。他们经常在操作 API 的方式上做出巨大转变,并且通常只在那里公布。