我正在尝试在我的控制器中创建一个将相册发布到 Facebook 的功能。每次访问该函数时,即使我刚刚正确登录 Facebook,我也会被重定向到 REDIRECT_URI,就好像 $userid=0 一样。这是因为登录后,它会重新启动该功能并创建一个新的 Facebook 会话,从而清除我刚刚获得的用户吗?
感谢您的任何帮助,您可以提供。
function share($id){
if (!$id) { $this->Session->setFlash(__('Invalid id for Album', true));
$this->redirect(array('action'=>'index')); }
$photos = $this->Album->find('all', array('conditions' => array('Album.id' => $id)));
$facebook = new Facebook(array('appId'=>'valid aphid', 'secret'=>'valid secret'));
$facebook->setFileUploadSupport(true);
$userid = $facebook->getUser();
if($userid) {
try {
$user_profile = $facebook->api('/me'); // Gets User's information based on permissions the user has granted to your application.
}
catch(FacebookApiException $e){
error_log($e);
// Print results if you want to debug.
$userid = null;
}
} else {
$login_url = $facebook->getLoginUrl($params = array('redirect_uri' => REDIRECT_URI,'scope' => PERMISSIONS_REQUIRED));
echo ("<script> top.location.href='".$login_url."'</script>");
}
//Create album
$results = $facebook->api('me/albums', 'post', $photos[0]['Album']['name']);//->photos_createAlbum($albumname, '', '', 'everyone', $this->_userid);
}
默认情况下,Facebook 类使用PHP 会话存储用户的身份验证状态。可以使用四个会话变量:
-
fb_{appid}_user_id
:Facebook 用户 ID
-
fb_{appid}_code
:需要兑换访问令牌的授权码
-
fb_{appid}_access_token
:可用于进行 API 调用的访问令牌
-
fb_{appid}_state
:CSRF代币
检查您的 PHP 会话是否已配置且工作正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)