Facebook $ user locale auth требуется? - PullRequest
0 голосов
/ 15 февраля 2012

Я не знаю, почему я получаю эту ошибку: Неустранимая ошибка: Uncaught OAuthException: активный токен доступа должен использоваться для запроса информации о текущем пользователе.

Я знаю, что для этого обычно нужно использовать токены доступа, но в API Facebook это ясно говорит:

* нет access_token для общедоступных данных: uid, имя, имя, отчество, фамилия, пол, языковой стандарт *

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

// create the Facebook Graph SDK object
require_once('facebook.php');
$facebook = new Facebook(array(
    'appId'=>'273312646075066', // replace with your value
    'secret'=>'7a34df58fad450648249634c81ec17c5' // replace with your value
        ));

echo "<body>";

    // Show the content for the person who liked the page
    $user = $facebook->getUser();
    $user_profile = $facebook->api('/me');

    //setting the language variables
    $fr = 'fr';
    $nl = 'nl';

    //setting the right content according to the language
    if(stristr($user_profile['locale'],$nl))
    {
        $lang = "NL";
        $_SESSION['lang']=$lang;
        include "form.php";
    }
?>

Заранее спасибо!

РЕДАКТИРОВАТЬ: я не упомянул, что это должно быть без процесса авторизации (приложение для утверждения). Пожелания клиента

Ответы [ 3 ]

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

Вы можете совершать базовые вызовы на графике, например http://graph.facebook.com/zuck или http://graph.facebook.com/4 или http://graph.facebook.com/cocacola.

Все эти работы. Однако обратите внимание, что я не ставлю токен доступа.

Когда вы делаете вызов с использованием PHP SDK, он добавляется к текущему токену доступа. Проверьте сам трафик веб-сервера, и вы можете увидеть его.

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

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

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

$signed_request = $facebook->getSignedRequest();
    $locale = $signed_request['user']['locale'];

На этой странице было найдено, как я мог получить локаль пользователя:

http://www.devquotes.com/2011/03/20/how-to-create-a-facebook-page-dynamically-translated/

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

Сначала вы должны пройти процедуру аутентификации , чтобы совершать вызовы Graph API

...