facebook graph api..получить друзей друзей

Я использую API графика FB, чтобы получить список друзей моих друзей, используя:

https://graph.facebook.com/<id>/friends?access_token=<token>

Теперь странно то, что это работает для некоторых из моих друзей и не работает для некоторых других. Может ли кто-нибудь сказать мне, почему это происходит и возможное решение?

В тех случаях, когда это не работает, я получаю следующее сообщение: «Не удается найти всех друзей YYYYYY. Можно искать только вошедшего в систему пользователя (XXXXX) или друзей вошедшего в систему пользователя с соответствующим разрешением».

И я повторяю, Я МОГУ получить списки друзей некоторых из моих друзей, используя указанный выше URL. Какие разрешения здесь упоминаются?


person Krishnamurthy    schedule 17.04.2011    source источник


Ответы (3)


Разрешения на конфиденциальность.

Как пользователь, я контролирую, кто может видеть мой список друзей. Если я выберу «Только друзья», то мой список смогут видеть только мои друзья, а не «друзья друзей».

Войдите в Facebook, в правом верхнем углу нажмите «Учетная запись» -> «Настройки конфиденциальности», затем нажмите «Просмотреть настройки» в разделе «Подключение к Facebook».

«Просмотреть список друзей» — вот что контролирует это.

Редактировать: Извините, я должен был подумать об этом на минуту.

Вы можете видеть друзей своего друга через стандартный веб-интерфейс Facebook. Ваше приложение — это не вы. Даже если вы предоставили приложению доступ к своей учетной записи, ваши друзья этого не сделали. В этом случае вы не сможете вернуть друзей своего друга, если для них не установлено значение «Все». Ваше приложение не является другом друга.

Я считаю, что это причина. Другая причина может заключаться в том, что их API известен своими ошибками. Вы всегда можете открыть отчет об ошибке на странице http://bugs.developers.facebook.net/ и, если мое предположение верно, кто-нибудь даст вам знать.

person Brian Roach    schedule 17.04.2011
comment
Да, я проверил это сразу после создания этого поста. Несмотря на то, что я вижу друзей своих друзей на веб-сайте facebook, вызов API не получает их. Только некоторые вызовы успешны. Это непоследовательно. - person Krishnamurthy; 17.04.2011
comment
Спасибо за ответ Брайан. На самом деле я не получаю эту информацию с помощью приложения facebook. Я делаю простые старые HTTP-вызовы, используя свой токен доступа (см. URL-адрес, который я разместил выше). Думаю, это мне ближе, чем приложение facebook. Вот что меня смутило. - person Krishnamurthy; 17.04.2011
comment
Нет никакой разницы. Graph API — это просто REST-ful интерфейс. Неважно, используете ли вы приложение или браузер и включаете токен доступа — это всего лишь HTTP-запросы. Когда вы включаете токен доступа, запрос выполняется в контексте приложения. - person Brian Roach; 17.04.2011

У меня есть друзья друзей (ограничено). У меня была такая же проблема. Хотя уже очень поздно отвечать на вопрос, это кому-нибудь поможет. Вот почему отвечая на этот вопрос.

Мы можем получить друзей друзей, которые являются пользователями приложения. Попробуйте выполнить этот fql-запрос.

$fb_id= идентификатор пользователя, друзья друзей которого требуются.

$query="SELECT uid, name, work_history  FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $fb_id ) and is_app_user=1) )";
        $user_info=$facebook->api(array('method'=>'fql.query',
                    'query'=>$query));
person Somnath Muluk    schedule 25.02.2012

Верно. Это все http запросы. Но если я нажму на ссылку, чтобы показать друзей Джона, Facebook перечислит их, а если я использую граф API и токен, это не так. В любом случае, это я спрашиваю, но API непоследовательно.

person Tim    schedule 15.07.2011