php-如何正确使用facebook作用域获取用户电子邮件?

当用户在我的网站上使用Facebook登录时,我需要检索用户的电子邮件. Facebook在其登录URL中有一个scope参数,用于请求这些扩展权限.我到底要在此代码中添加什么内容,以正确设置范围以包括电子邮件?

/**
* Get a Login URL for use with redirects. By default, full page redirect is
* assumed. If you are using the generated URL with a window.open() call in
* JavaScript, you can pass in display=popup as part of the $params.
*
* The parameters:
* - redirect_uri: the url to go to after a successful login
* - scope: comma separated list of requested extended perms
*
* @param Array $params provide custom parameters
* @return String the URL for the login flow
*/
public function getLoginUrl($params=array()) {
 $this->establishCSRFTokenState();
 $currentUrl = $this->getCurrentUrl();
 return $this->getUrl(
   'www',
   'dialog/oauth',
   array_merge(array(
                 'client_id' => $this->getAppId(),
                 'redirect_uri' => $currentUrl, // possibly overwritten
                 'state' => $this->state),
               $params));
}

解决方法:

添加范围参数:

public function getLoginUrl($params=array()) {
 $this->establishCSRFTokenState();
 $currentUrl = $this->getCurrentUrl();
 return $this->getUrl(
   'www',
   'dialog/oauth',
   array_merge(array(
                 'client_id' => $this->getAppId(),
                 'redirect_uri' => $currentUrl, // possibly overwritten
                 'state' => $this->state,
                 'scope'=>'email'),
               $params));
}
上一篇:用于演示Android中sociallib的不同功能的示例项目/教程


下一篇:Spring Security 2.0 Facebook Connect