Как запросить возраст и имя пользователя для приложения Facebook? - PullRequest
0 голосов
/ 19 февраля 2012

Я работаю над своим первым приложением Facebook с помощью Интернет-документации Facebook по разработке приложений .

Проблема, с которой я сталкиваюсь при аутентификации, также требует указания пола и имениПользователь.Снимок экрана, доступный по приведенной выше ссылке, говорит, что «основная информация», которую я запрашиваю у пользователя, содержит их обоих.Но я не знаю, как их получить, я думаю, они находятся в массиве JSON, но я не очень знаком с JSON, поэтому, может быть, поэтому или мне нужно дополнительное разрешение для них?

<?php

  $signed_request = $_REQUEST["signed_request"];
  list($encoded_sig, $payload) = explode('.', $signed_request, 2);
  $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
  if (empty($data["user_id"])) {
    echo("<script> top.location.href='" . $auth_url . "'</script>");
  } else {
    echo("<b class=\"welcome\">Welcome " . $data["user_id"] . ",</b><br/>");
  }
?>

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

Источником ваших данных является подписанный запрос, который согласно документации имеет ограниченный набор свойств пользователя (список находится по этой ссылке).

Чтобы получить больше данных о пользователе или его друзьях, вам нужно сделать api-запросы. Некоторая информация предоставляется вашему приложению после его авторизации пользователем, например:

Когда пользователь позволяет вам получить доступ к своей основной информации в авторизации диалог, у вас есть доступ к их идентификатору пользователя, имени, аватарке, пол, возраст, локаль, сети, идентификатор пользователя, список друзей и любые другая информация, которую они обнародовали.

и

Чтобы получить доступ к любой дополнительной информации о пользователе или его друзья, вам нужно запросить конкретные разрешения от пользователя.

(подробнее здесь: http://developers.facebook.com/docs/reference/api/permissions/).

Если вы хотите указать только пол, имя и имя, отправьте запрос / me, как указано здесь: http://developers.facebook.com/docs/reference/api/user/ без необходимости запрашивать какие-либо другие разрешения.

EDIT

Если вам нужны фрагменты кода, попробуйте эту тему: Получите имя пользователя из Facebook Graph API

0 голосов
/ 19 февраля 2012

Если вы хотите получить данные о дне рождения, вы должны добавить разрешение на метод getLoginUrl.

вывод print_r ($ data) будет Array (базовая информация + день рождения). Вы можете рассчитать возраст пользователей, используя поле дня рождения и функцию даты.

дополнительная информация о разрешениях Facebook .

Попробуйте этот код:

<?php
$config= array('appId'=>APP_ID, 'secret'=>APP_SECRET);
$facebook= new Facebook($config);
$user_id= $facebook->getUser();
if( $user_id ){
   try {
      $data= $facebook->api('/me');
          print_r($data);
      }catch( FacebookApiException $e ){
        $user_id = null;
        $e->getType();
        $e->getMessage();
    }
}
if( $user_id ){
    $href= $facebook->getLogoutUrl();
    $text= "LogOut";
}else{
    $permission= array('scope'=>'user_birthday');
    $href= $facebook->getLoginUrl($permission);
    $text= "LogIn";
}
?>
<a href="<?php echo $href; ?>"><?php echo $text; ?></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...