Получение пользовательских данных несовместимо с php и javascript sdk - PullRequest
0 голосов
/ 06 сентября 2011

Я разрабатывал приложение для Facebook, которое использует комбинацию php sdk и javascript sdk.Он работает в фрейме с вкладками на Facebook и размещен на моем собственном сервере.Я использую последние файлы php и javascript sdk на данный момент (06 сентября 2011 г., 14:50).Первое несоответствие в php sdk при получении идентификатора пользователя.Это мой код:

require 'fb_php_sdk/facebook.php';

$facebook = new Facebook(array(
    'appId'  => $app_id,
    'secret' => $app_secret,
    'cookie' => true
));

$user = $facebook->getUser();
if ($user) {
    $permissions_granted = true;
} else {
    $permissions_granted = false;
}

Это очень часто возвращает «0» в качестве идентификатора Facebook, понятия не имею, почему.Хотя почти так же часто возвращает фактический идентификатор Facebook.

Другая проблема с изображениями.Я часто получаю изображения, которые не отображаются при вызове этого URL:

<img src="https://graph.facebook.com/' . $uid. '/picture/" />

Когда я использую fql, я непоследовательно получаю 'undefined' в результате выполнения этого запроса:

FB.api(
    {
        method: 'fql.query',
        query: 'SELECT name,pic FROM user WHERE uid=<? echo $user ?>'
    },
        function(response)
        {
            alert(response[0].pic);
        }
);

Я действительноне понимаю, что может вызвать это несоответствие, и это делает тестирование ошибок очень трудным.Если кто-то испытывал такое поведение и может указывать мне правильное направление, я действительно ценю это.Спасибо!

1 Ответ

0 голосов
/ 12 сентября 2011

Это очень часто возвращает «0» в качестве идентификатора facebook, не знаю почему. Хотя почти так же часто возвращает реальный идентификатор Facebook.

Конечно, потому что вашему приложению нужны как минимум разрешения по умолчанию. В противном случае вы ничего не получите о пользователе. И то же самое с вашими изображениями. Бьюсь об заклад, большую часть времени ваш $ uid содержит ноль.

Вы проверяли, что возвращает Facebook? Это должно быть что-то вроде:

{ "ошибка": { "type": "OAuthException", "message": "Активный токен доступа должен использоваться для запроса информации о текущем пользователе." } } * +1010 *

Таким образом, вам необходимо получить разрешения пользователя, чтобы получить доступ к его / ее данным.

С уважением, Jurik

...