代码之家  ›  专栏  ›  技术社区  ›  Sarfraz

无法通过Facebook获取用户生日

  •  3
  • Sarfraz  · 技术社区  · 16 年前

    我一直试图通过facebook connect获得一个facebook用户的生日,但一直没有成功。同样的代码以前工作过,现在仍然在其他网站上工作过,以前的(旧的)但是现在似乎不再工作了。代码如下:

    require_once ('./connect/facebook.php');
    
    $facebook = new Facebook("myapi", "mysecret");
    $fbuser = $facebook->get_loggedin_user();
    
    if ($fbuser)
    {
        $_SESSION['custid'] = $fbuser;
    
        $fb_look_fields = array(
                                'name', 
                                'first_name', 
                                'last_name', 
                                'name', 
                                'timezone', 
                                'name', 
                                'sex', 
                                'birthday',
                                'birthday_date',
                                'current_location', 
                                'proxied_email',
                                'affiliations'
                                );
    
        try
        {
            $user_data = $facebook->api_client->users_getInfo($fbuser, $fb_look_fields);
        }
        catch (Exception $e)
        {
             echo $e->getMessage();
        }
    
        # for birth date
        $fb_birthday = $user_data[0]['birthday'];
    
        if (!$fb_birthday)
        {
            $fql_result_xml = $facebook->api_client->fql_query("SELECT birthday FROM standard_user_info WHERE uid = " . $fbuser);
            $fb_birthday = $fql_result_xml['birthday'];
        }
    
        echo $fb_birthday;
    

    生日总是空的,即使我已经定好了 对所有人可见 .

    • 我正在使用新的facebook php客户端
    • 我甚至试着从标准表中获取信息,但没有成功

    Facebook又改变了他们的API/政策了吗?或者我在代码中缺少/没有正确地做什么?

    3 回复  |  直到 8 年前
        1
  •  2
  •   jbnunn    16 年前

    他们又改变了事情。为connect生成登录按钮时,可以请求对生日的权限,例如:

    文档中说,“一旦用户授权了您的站点,您就可以从用户的配置文件中获取这些字段…”

    http://developers.facebook.com/docs/guides/web#login

        2
  •  2
  •   Mahmud Ahsan    15 年前

    Facebook目前将生日作为扩展权限。你允许生日延期吗?在用户批准生日扩展权限之前,您无法检索他的生日。

        3
  •  1
  •   Verbeia pjb3    14 年前

    我有一些成功的疑问 standard_user_info 通过脱机的表 access_token. 但我找不到日期格式的文档。我得到的日期是“1999年3月4日”。

    推荐文章