我开始使用codeigniter框架创建一个小型应用程序在Facebook内创建应用程序后,我已经从github下载了Facebook连接,目前一切正常,我唯一的问题是getUser()总是返回0
我在application/config/
中创建了一个facebook.php另外,我在application/libraries/
中提取了facebook.php & base_facebook.php
这是我的代码
class Welcome extends CI_Controller {
private $data = array();
public function index() {
$this->data['loginUrl'] = $this->facebook->getLoginUrl();
$this->data['userId'] = $this->facebook->getUser();
$this->load->view('welcome_message', $this->data);
}
}
在自动加载中我有:
$autoload['libraries'] = array('database','session','facebook');
那么为什么getUser()
返回0,以及如何解决此问题thx
在base_facebook.php
上,找到makeRequest()
方法,然后在函数内部找到以下行:
$opts = self::$CURL_OPTS;
紧随其后,添加:
$opts[CURLOPT_SSL_VERIFYPEER] = false;
或从这里读取
它有时会这样做。我从来没有弄清楚为什么,但有一个简单的解决方案,我现在总是遵循。
与请求getUser相反,请求封装在try-catch块中的api(/me)。如果失败,则用户未登录/令牌无效。如果有效,则用户将登录,并从结果数组中获取用户id。
你可能正在节省一个电话,因为你无论如何都会找我。只需记住错误捕获的try-catch!