Friends_interests / likes / etc возвращаются как пустые из Facebook Graph API

#facebook #facebook-graph-api

#Facebook #facebook-graph-api

Вопрос:

Я немного повозился с graph API и смог получить доступ к своей собственной информации просто отлично. Однако, когда я пытаюсь что-то вроде:

https://graph.facebook.com/999999/likes ?access_token=xxx (где 999999 — идентификатор друга)

Я получаю пустой график следующим образом:

{ «данные»: [

]
}

Имейте в виду, что пока я делаю все это вручную. Это URL-адрес, который я использовал, чтобы запросить разрешение у своего профиля:

https://www.facebook.com/dialog/oauth?client_id=xxxamp;redirect_uri=http://www.google.comamp;scope=email,read_stream,offline_access,user_likes,friends_likes

Все работает отлично, и я получаю свой код доступа, но по-прежнему получаю пустой график. Предложения?

Спасибо.

Ответ №1:

Вы перепробовали нескольких друзей? Ваши друзья могут настроить, к какой информации могут иметь доступ их сторонние приложения. Например, я мог бы ограничить приложения, которые вы используете, чтобы они ничего не видели обо мне, если бы мы были друзьями.

Также вы можете проверить учетную запись -> конфиденциальность -> настройки -> приложения и посмотреть, действительно ли ваше приложение имеет разрешения, которые, по вашему мнению, вы предоставили ему как пользователь.

-Кевин

Комментарии:

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

Ответ №2:

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

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

Код выглядит примерно так:

 Dim FB As New SessionInfo("[access_token]")
Dim Req = New Functions.Requests(FB)
Dim U = Req.GetUserInfo("[userid for friend]")
Response.Write(U.name)
  

Также вы можете получить список друзей, позвонив по этому

 Dim FL = Req.GetFriends()
For Each F In FL
    Response.Write(F.name)
Next
  

Ответ №3:

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

Я не уверен в этом на 100%, но могут быть два случая, когда, например, запрос лайков пользователей приводит к получению пустого набора данных, даже если правильные разрешения запрашиваются и предоставляются пользователем:

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

  2. Пользователю не исполнилось 18 лет. https://www.facebook.com/help/?page=214189648617074