0

我在互联网上查看了一些关于此的信息,但我发现的只是 SDK 版本 2.XX,现在 3.0.0 版本无法正常工作。

我需要的是获取用户信息并将其用作服务器,以便随时发布而不依赖于 cookie。

知道如何做到这一点吗?旧教程建议是这样的:

$facebook->getSession()

在会议上,我会得到钥匙,但这种方法不再存在。知道如何获取会话密钥并重新使用它吗?

谢谢!

4

2 回答 2

2

如果您需要“无限”会话,请请求offline_access许可。从那里,您必须access_token从会话中获取并将其存储在数据库中。

于 2011-06-09T20:36:37.010 回答
0

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 的方式上做出巨大转变,并且通常只在那里公布。

http://developers.facebook.com/blog/feed

于 2011-06-09T18:25:24.853 回答