【问题标题】:Only Getting User Name and ID仅获取用户名和 ID
【发布时间】:2015-07-13 19:49:32
【问题描述】:

我正在使用 codeigniter 并将 Facebook PHP SDK 实施到我的网站中,以便用户能够登录。

一切都很顺利,但我只是不知道为什么我只能得到他们的姓名和身份证。

这是我从某个地方获得的库的代码:

public function login_url() {
  return $this->helper->getLoginUrl( $this->permissions );
}

/**
 * Returns the current user's info as an array.
 */
public function get_user() {
  if ( $this->session ) {
    /**
     * Retrieve User’s Profile Information
     */
    // Graph API to request user data
    $request = ( new FacebookRequest( $this->session, 'GET', '/me' ) )->execute();

    // Get response as an array
    $user = $request->getGraphObject()->asArray();

    return $user;
  }
  return false;
}

这是我的控制器:

首先直接从我的网站到 Facebook

public function index() {
    $this->load->library('facebook');
    redirect($this->facebook->login_url());
}   

然后 facebook 将其重定向回我的网站 (myweb.com/index.php/getUSer)

public function getUser() {

    $this->load->library('facebook');
    $user = $this->facebook->getUser();

    echo "<pre>";
    print_r($user); 

}   

但是结果只有:

Array
(
    [name] => Iyal
    [id] => 143426842340043
)

我的问题是,如何获取用户的完整信息,例如电子邮件地址、个人资料图片等。

提前致谢。

【问题讨论】:

标签: php facebook codeigniter facebook-graph-api facebook-php-sdk


【解决方案1】:

默认情况下,通过 Facebook API 检索用户的个人资料时,会返回一组有限的字段,例如您正在获取的字段。

您必须在对 Graph API 的请求中包含您希望从中获取信息的字段。个人资料字段列表可用here

您需要做的是使用 here 演示的方法将这些附加字段添加到库中的请求中。

例如,在您的情况下,如果您想在标准数据之外获取用户的电子邮件地址,您可以在库中添加这样的方法:

public function get_userWithEmail() {
    if ( $this->session ) {
    /**
    * Retrieve User’s Profile Information
    */
    // Graph API to request user data
    $request = ( new FacebookRequest( $this->session, 'GET', '/me?fields=id,name,email' ) )->execute();

    // Get response as an array
    $user = $request->getGraphObject()->asArray();

    return $user;
  }
  return false;
}

请注意,您的库所针对的 API 版本是旧版本。您最好重写它以使用最新版本,以确保将来支持它。文档here 提供了一个很好的概述,并且应该很明显地在保留原始结构的同时更改库的哪些部分。

【讨论】:

  • fields=id,name,email 该死的,它有效。除了email还有别的吗?请全部给我列出来。
  • 我已链接到一个文档,该文档列出了第二段中的所有字段。
  • 你能给我最新的图书馆吗,拜托。一个完整的库。
  • 可以使用here,使用它的文档链接是here
  • 非常感谢您提供所有这些链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2019-12-30
  • 2021-07-18
  • 1970-01-01
相关资源
最近更新 更多