Следующий код должен возвращать адрес электронной почты пользователя, вошедшего в систему.
<?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();
Благодаря этому ответу.
Я столкнулся с этой проблемой в разное время, но проблема 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/
Попробуйте следующее
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>'; }