Получить данные профиля пользователя Facebook в php

Следующий код должен возвращать адрес электронной почты пользователя, вошедшего в систему.

<?php require_once('facebook-php-sdk/src/facebook.php'); // Create our Application instance (replace this with your appId and secret). $facebook= new Facebook(array( 'appId' => '2453463636', 'secret' => '365653656565656', 'allowSignedRequest' => false, )); $user = $facebook->getUser(); print_r($user); if ($user) { try { // Get the user profile data you have permission to view // $user_profile = $facebook->api('/me'); $user_profile = $facebook->api('/me?fields=picture.width(100).height(100),first_name,last_name,username,email'); echo $user_profile['email']; } catch (FacebookApiException $e) { $user = null; error_log($e); print_r($e); } } else { die("failed"); } ?> 

Вместо этого он возвращает «сбой», а print_r ($ user) возвращает 0.

На самом деле не знаю, что делать.

В приборной панели:

введите описание изображения здесь

Я создал платформу веб-сайта для просмотра моего приложения.

Суть: «Домены приложений» = www.app.com

«URL-адрес сайта» = http://www.app.com/test

URL-адрес сайта – это приложение. Я пытаюсь получить доступ к getUser в URL- getUser таких как http://www.app.com/test/fbuser , где он возвращает 0 и die clause.

Я неправильно это сделал?

РЕДАКТИРОВАТЬ

Curl на моем сервере localhost

введите описание изображения здесь

также команда «Configure Command» совсем другая (см. ниже для снимка экрана локального хоста)

введите описание изображения здесь

Информация о удаленном сервере упоминает «завиток» в этом блоке текста для команды «Настройка»

Codeigniter удаляет $_REQUEST который используется PHP PHP SDK для извлечения параграфа кода OAuth.

Исправление состоит в том, чтобы скопировать $_GET в $_REQUEST перед вашим вызовом $facebook->getUser() :

 $_REQUEST += $_GET; $user = $facebook->getUser(); 

Благодаря этому ответу.

Случай 1 Если пользователь вошел в систему и все еще получает $ user = 0

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

РЕШЕНИЕ: Это сработало для меня, пытаясь найти множество решений для этой проблемы.

В файле base_facebook.php найдите метод makeRequest () и проверьте следующую строку.

 $opts = self::$CURL_OPTS; 

Сразу после этого добавьте эту строку

 $opts[CURLOPT_SSL_VERIFYPEER] = false; 

Более подробную информацию можно найти здесь – http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/

Случай 2 – Если пользователь не зашел

Попробуйте следующее

 if($user_id) { // User is logged in do action here } else { // No user, print a link for the user to login $login_url = $facebook->getLoginUrl(); echo 'Please <a href="' . $login_url . '">login.</a>'; }