我正在使用以下代码为我的codeigniter应用程序获取已登录Facebook用户的数据。
require_once('facebook-php-sdk/src/facebook.php');
$facebook= new Facebook(array(
'appId' => $this->config->item('app_id'),
'secret' => $this->config->item('app_secret'),
'allowSignedRequest' => false,
));
$_REQUEST += $_GET;
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email');
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$login_url = $facebook->getLoginUrl(array(
'scope' => 'email'
));
echo 'Please <a href="' . $login_url . '">login.</a>';
}
这可以运行并返回用户的Facebook数据,如果没有用户登录则提供登录链接。
在登录链接中,我要求获得电子邮件许可,因为我需要收集这些信息以进行通信。当用户使用else子句中的登录链接登录时,我成功获取了用户的电子邮件地址。
但是,我想使用Woobox在Facebook页面选项卡中启动此应用程序。因此,用户通常会始终登录其帐户。但是,如果用户未登录,则获取电子邮件权限的登录名在else语句中。
如何为已登录的用户请求电子邮件权限,而无需再次登录?
我怎样才能做到这一点,如果用户已经登录到facebook,那么询问用户权限的auth框会出现,他们可以点击ok继续授权,而不是登录按钮。