我已经在这方面工作了一段时间,我似乎无法让它发挥作用。这似乎是一个经常被问到但很少回答的问题。
我希望我的网站用户将他们的Facebook帐户与我的网站相关联。 所以他们可以在我的网站上看到他们的流e.t.c.
目前,每次他们登录我的网站时,他们都必须再次与Facebook联系。 我希望用户可以选择将offline_access提供给他们的数据,这样他们每次访问我的网站时都不必重新登录Facebook /重新连接我的网站。作为我的网站的一般点。
为此我知道我需要离线访问。 (https://developers.facebook.com/docs/authentication/)虽然从我的搜索来看,文档似乎有点亮(Facebook offline access step-by-step)。
我已经知道如何要求离线访问我只是不确定如何从中获取数据。
所以我的问题如下;
仅供参考。我正在使用PHP(codeigniter)和Eliot Haughin的Facebook connect library虽然你可以使用常规的php库给我代码,但我只是转换它
非常感谢
答案 0 :(得分:6)
右。经过一些搜索和探索代码之后。我想通了。
我已经为多个用户测试了它,并且在一周内测试它就像一个魅力。
获得offline_access权限后,存储会话密钥和用户ID。 (无论你想要什么。我将我的数据存储在我的数据库中)。
无限会话密钥看起来像这样df4175330aaddb9d50fd8f84-30000799 在“破折号”作为用户ID后的所有内容。
然后,下次调用API时,请添加以下代码行。
$ this-> fb-> set_user('Facebook用户ID','离线访问会话密钥',0); 注:零是它到期之前的时间量。 0 =从不。
我的库中的代码如下
$this->fb = new Facebook($this->_api_key, $this->_secret_key);
//Query Database to see if user had enabled offline access.
//If So extract the userid and session key
$this->fb->set_user($fbuserid, $fbsess, 0);
在我的测试中,这完美无缺。 现在,我的用户可以登录我的网站,并在获得offline_access权限后自动拥有Facebook。它目前已经工作了一个星期没有问题。
我认为这就是一切。但如果我遗漏了任何东西,请告诉我。
答案 1 :(得分:1)
我一直在使用facebook connect,因为他们在F8上宣布它并在一年前进入测试阶段,我负责几个大型网站上我们的Facebook连接集成的后端,我花了在这个问题上有相当多的时间。
此处为a good post on the topic,此处为a bug filed 3 months ago。
长话短说,facebook并没有积极支持这种类型的会话促销 - 是的,它是in the docs - 但它不起作用。这显然不是他们实际在内部测试的东西。
根据经验,让我告诉你:如果它不是一个记录良好的常用功能,你就不能依靠facebook来维护它。
答案 2 :(得分:0)
每次用户更改密码时密钥都会过期。这是写在文档上的。