在php中启用user_birthday权限facebook生日

时间:2012-09-06 20:12:20

标签: php facebook facebook-graph-api user-profile

我正在创建一个Facebook应用程序来显示用户的生日.........

     <?
         require_once('php-sdk/facebook.php');
         $config = array(
                          'appId' => 'YOUR_APP_ID',
                          'secret' => 'YOUR_APP_SECRET',
                         );

         $facebook = new Facebook($config);
         $user_id = $facebook->getUser();
     ?>
     <html>
     <head></head>
     <body>

     <?
            if($user_id) 
            {

                  // We have a user ID, so probably a logged in user.
                  // If not, we'll get an exception, which we handle below.
                  try 
                  {

                        $user_profile = $facebook->api('/me','GET');
                        echo "Name: " . $user_profile['name'];

                        // Birth Date to be printed here........
                       echo "DOB:  ".$user_profile['birthday'];
                  } 
                  catch(FacebookApiException $e) 
                  {
                       // If the user is logged out, you can have a 
                       // user ID even though the access token is invalid.
                      // In this case, we'll get an exception, so we'll
                      // just ask the user to login again here.
                     $login_url = $facebook->getLoginUrl(); 
                     echo 'Please <a href="' . $login_url . '">login.</a>';
                     error_log($e->getType());
                     error_log($e->getMessage());
                  }   
             } 
             else 
             {

                    // No user, print a link for the user to login
                    $login_url = $facebook->getLoginUrl();
                    echo 'Please <a href="' . $login_url . '">login.</a>';

              }
     ?>

     </body>
     </html>

现在,问题是This prints the name as expected but prints nothing in place on date of birth .......当我进一步提及时,我听说了facebook权限(扩展)...... 并从以下链接 http://developers.facebook.com/docs/reference/api/user/

我发现我们需要启用权限users_birthdayfriends_birthday

现在,我们如何在PHP代码中启用它? ...请帮助样品....... 对不起,如果这个问题看起来很愚蠢。我只是facebook app开发中的新人,也是php的初学者....... 我尝试了stackoverflow.com中的其他示例,它对我没什么帮助......

2 个答案:

答案 0 :(得分:4)

我认为您没有迹象表明您已阅读PermissionAuthentication文档;你不是要求用户允许他们访问他们的生日。

在将用户发送到Auth对话框时将user_birthday添加到scope,如果他们批准了这些权限,您就可以访问他们的生日。

您在“应用设置”中配置的权限仅适用于(已弃用)经过身份验证的引荐或App Center登录屏幕,您的应用需要明确要求所有其他登录流程中的权限

答案 1 :(得分:3)

您必须要求Facebook批准您的申请。在Facebook审核之后,您就可以使用扩展权限。

根据this文档,如果您的应用要求的不仅仅是public_profile,email和user_friends,那么在您的应用可以被应用开发者以外的人使用之前,需要通过Facebook进行审核。 1

我遇到了和你相同的问题。我认为这是错误的编码,一切。然后我在facebook v2.0 Documentation上看到了这个。