//使用javascript弹出facebook登录
FB.login(function(response) {
if (response.authResponse) {
var accessToken = response.authResponse.accessToken;
//得到1-2小时过期时间的accesstoken
//把accesstoken拿到一个叫facebook控制器的控制器里
$request = $this->getRequest();
$params = $request->getParams();
$token=$params['accessToken'];
//获取访问令牌延长至60天
$conf = $this->getConfigs();
$appid = $conf['fbdetails']['appid'];
$secret = $conf['fbdetails']['secret'];
$baseurl = $conf['app']['baseurl'];
//下面的代码执行后,我们会得到一个响应,访问令牌过期时间为60天。
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$appid."&client_secret=".$secret."&grant_type=fb_exchange_token&fb_exchange_token=".$token;
// 以上响应用于解析。
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_URL, $token_url);
$contents = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
$paramsfb = null;
parse_str($contents, $paramsfb);
//解析上述执行代码中的内容后,存储新的扩展accesstoken。
$user_session = new Zend_Session_Namespace('fbuser');
$user_session->access_token = $paramsfb['access_token'];
//存储到会话中。
$this->_redirect('/home');
//有一个漂亮的编码