Застрял в Graph API (Facebook API), как мне получить имя, адрес электронной почты и пол, используя этот код? - PullRequest
0 голосов
/ 04 ноября 2010

Ну, это проблема.У меня есть этот код, который работает очень хорошо:

Код

<?php

define('FACEBOOK_APP_ID', 'MY.APP.CODE');
define('FACEBOOK_SECRET', 'MY.APP.SECRET');

function get_facebook_cookie($app_id, $application_secret) {
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);

?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://www.facebook.com/2008/fbml">
  <body>
    <?php if ($cookie) {
      echo("The ID is: " . $cookie['uid']);
      echo('<br>The profile Picture is: <IMG SRC="http://graph.facebook.com/' . $cookie['uid'] . '/picture?type=large"><br>');
    } else {
      echo('<fb:login-button perms="email,user_birthday,publish_stream,user_status"></fb:login-button>');
    } ?>

    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
      FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
               cookie: true, xfbml: true});
      FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
      });
    </script>
  </body>
</html>

Выход

Идентификатор: Число здесь Изображение: Изображение здесь

Проблема

Как видите, этот код дает мне идентификатор пользователя Facebook и фотографию профиля на Facebookкогда он залогинится и даст разрешения приложению.Как я уже сказал, этот код работает нормально, но мне нужно больше информации, как я могу получить электронную почту, пол и имя, используя ту же логику этого кода?Пожалуйста, не используйте внешние библиотеки (например, facebook.php )

Помните, что это очень простое приложение, поэтому я не хочу усложнять его в коде, я знаю, что решениеЯ имею дело с анализом ответов JSON, но я не могу найти хороший и простой код.Спасибо !!!!

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Graph API возвращает результат в формате JSON.

Например,

GET http://graph.facebook.com/4 HTTP/1.1

дает

{"id":"4","name":"Mark Zuckerberg","first_name":"Mark","last_name":"Zuckerberg","link":"http:\/\/www.facebook.com\/zuck","gender":"male","locale":"en_US"}

Здесь name - имя;gender это секс.Если вы дали разрешение на отправку электронной почты от пользователя, вы также получили это письмо.

0 голосов
/ 11 марта 2011
'me/friends?fields=gender,name,id'
0 голосов
/ 04 ноября 2010

Вам нужно просмотреть все расширенные разрешения, которые вам могут потребоваться, в зависимости от того, какие данные вам нужны.

http://developers.facebook.com/docs/authentication/permissions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...