kyl*_*yle 5 authentication facebook
我正试图在我的控制器中创建一个功能,将专辑发布到Facebook.每次访问该函数时,我都被重定向到REDIRECT_URI,就像$ userid = 0一样,即使我刚刚正确登录Facebook.这是因为登录后,它会重新启动该功能并创建一个新的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);
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,Facebook 类使用PHP 会话来存储用户的身份验证状态。可以使用四个会话变量:
fb_{appid}_user_id
:Facebook 用户 IDfb_{appid}_code
:需要兑换访问令牌的授权码fb_{appid}_access_token
:可用于进行 API 调用的访问令牌fb_{appid}_state
:CSRF代币检查您的 PHP 会话是否已配置且工作正常。
您无法在启动会话之前输出任何文本(如果需要,在实例化Facebook
对象时自动完成)。您可能想尝试将其作为函数的第一行:
if (!session_id()) { session_start(); }
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
10447 次 |
最近记录: |