2013-04-15 1 views
0

Я успешно могу авторизовать свое приложение canvas, используя этот код, но я могу получить только идентификатор пользователя. Мне нужно имя пользователя, возрастный список друзей. Помогите мне.Как получить имя пользователя во время авторизации приложения холста facebook?

Я использовал print_r и получить этот

Array ([algorithm] => HMAC-SHA256 [expires] => 1366020000 [issued_at] => 1366012878 [oauth_token] => BAAFaFlrFWXYBADDEIui8rTtcEWldiZAGlHZB1mGSZoQ6E9fU9vkweYnx2jvj4SSDNRUd465YcAiz4hI3jlQlXLBmB0jVXZBeoAiSyO5P2TQoIQVt9SQRWVJEuTGtcyQzazZCi20MWhDqBsa1qgYWKloSRWOkKBdPDBZCI0exZA13Jygh73hsr9ldVvFy8ClgEb8jIZBblCArGT3lb7g [user] => Array ([country] => pk [locale] => en_US [age] => Array ([min] => 21)) [user_id] => 100000 

Php код

$app_id = " xxxxxxxxx"; 

$canvas_page = "xxxxxxxx"; 

$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page); 

$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 { 

    print_r($data) ; 
    echo ("Welcome User: " . $data["user_id"]); 
    echo ("Welcome User: " . $data["age"]); //i tried this,but got undefined message? 

} 

ответ

0

Вам нужно сделать запрос API или использовать FQL для того, чтобы получить более подробную информацию о пользователе. http://developers.facebook.com/docs/reference/php/facebook-api/ имеет примеры, показывающие, как получить имя пользователя с помощью метода API. И тогда here - это документация API для FriendsList, а here - это документы FQL. Убедитесь, что у вас есть разрешение read_friendlists. Дайте мне знать, если у вас есть какие-либо вопросы :)

Пример с кодом:
Следуйте инструкциям на http://developers.facebook.com/docs/reference/php/ установить PHP SDK от https://github.com/facebook/facebook-php-sdk/.

Затем перейдите к http://developers.facebook.com/docs/reference/php/facebook-api/ и скопируйте первый пример в файл. Обязательно обновите идентификатор приложения, секрет приложения и убедитесь, что ваш require_once установлен в нужное место.

Затем замените

try { 

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

с

try { 
     //Get User Name 
     $user_profile = $facebook->api('/me','GET'); 
     //Get User's Friends 
     $friends_list = $facebook->api('/me/friends', 'GET'); 
     echo "<h1>Name: " . $user_profile['name']."</h1>"; 
     echo "<h2>Friends:</h2>"; 
     foreach ($friends_list['data'] as $friend) 
     { 
      echo $friend['name']."<br>"; 
     } 
+0

спасибо, вы можете плз добавить код в виде ответа. – user1452376

+0

Что конкретно вам нужно проиллюстрировать кодом? (любой пример кода, который я бы использовал, должен быть в первой ссылке) – asifrc

+0

Я хочу повторить адрес электронной почты и список друзей пользователя, я попытался скрестить голову, используя вышеперечисленные рефренсы, но не vail.i будет мухомором в приветствии для ответа. – user1452376

0

Вы можете получить доступ к пользовательской конечной точке в API Графика отправка подписанного запроса, , например поиске информации https://graph.facebook.com/me?fields=id,name даст вам имя пользователя аутентифицированного пользователя. См. http://developers.facebook.com/docs/reference/api/user/ для справки.

Я предлагаю вам использовать Facebook PHP SDK

вы можете получить его от GitHub, и это делает вещи проще. Я считаю, что у него есть базовый пример, который делает именно то, что вы хотите.

НТН