【问题标题】:enable user_birthday permission facebook birthday in php在 php 中启用 user_birthday 权限 facebook 生日
【发布时间】:2012-09-06 20:12:20
【问题描述】:

我正在制作一个 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 应用程序开发的新手,也是 php 的初学者....... 我尝试了 stackoverflow.com 中的其他示例,但对我没有多大帮助......

【问题讨论】:

  • 只是为了详细说明下面的 Igys 答案。使用 Graph api 时。默认情况下,FB 会询问的最少是用户的基本信息,以及属于基本信息类别的内容,例如名字和姓氏、会员 ID 等。除此之外的任何其他内容都是扩展信息或请求的特殊许可。单击 Igys 答案中的链接以了解范围及其使用方法的细分。

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


【解决方案1】:

我没有看到您阅读过PermissionAuthentication 文档的迹象;你不是在请求用户访问他们的生日。

在将用户发送到身份验证对话框时将user_birthday 添加到scope,如果他们批准权限,您将能够访问他们的生日。

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

【讨论】:

  • 我读过它....但我不明白我们如何启用该权限以及为此包含什么 php 代码..???
  • 我看不出你已经阅读了他的问题;据说“我发现我们需要启用权限users_birthday或friends_birthday。”。
  • 他认真地没有阅读文档,其中非常清楚地解释了如何做到这一点。我的回答还准确地告诉他该怎么做,即当他将用户发送到身份验证对话框时,将“user_birthday”范围添加到身份验证对话框中。另外,这是一年前的事了,从那时起文档和示例已经更新了好几次
  • 你的回答很好,只是你批评的那部分无关紧要。
【解决方案2】:

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

根据this 文档,如果您的应用要求的不仅仅是 public_profile、email 和 user_friends,则需要经过 Facebook 审核,然后您的应用才能被应用开发者以外的人使用。 1

我和你有同样的问题。我认为它是错误的编码,一切。然后我刚刚在 facebook v2.0 文档上看到了这个。

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多