То, что начиналось так же просто, как «Давайте разместим все посты нашего бренда в Facebook на нашем сайте», оказалось намного сложнее.
Ситуация:
- Существует несколько администраторов, которые управляют фан-страницей Facebook (20 +)
- RSS-каналы больше не работают с некоторыми страницами брендов
Я зарегистрировал идентификатор приложения ия получаю токен доступа на уровне приложения следующим образом:
https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=AAAAAAAA&client_secret=BBBBBBBB;
Ниже приведены некоторые различные случаи и то, что они возвращают.Во всех приведенных ниже примерах предполагается, что маркер доступа получен с использованием указанного выше URL
Случай 1: / posts
Возвращает сообщения на стене родительского аккаунта (того, кто началфан-страничка Facebook), а не администратор, который ее администрирует.
https://graph.facebook.com/PAGE_NAME/posts?access_token=XXXXXXXXXX;
Случай 2: / feed
Вернет сообщения на стене всем другим пользователям,а НЕ администраторы или владельцы страниц
https://graph.facebook.com/PAGE_NAME/feed?access_token=XXXXXXXXXX;
Случай 3: FQL
Возвращает те же результаты, что и в случае 1, примечание DDDDDDD = Page UID
SELECT post_id, created_time, message FROM stream WHERE source_id=DDDDDDDD AND actor_id=DDDDDDDD
Теперь, как ни странно, когда я использую Graph API Explorer в Facebook (конечно, вошел в систему) и вызываю приведенный выше пример 1 «/ posts», я действительно получаю все сообщения (в том числе от всех администраторов и владельцев страниц),Это именно то, чего я хочу!
Так почему я здесь?Из-за проблемы с токеном доступа.Это поток, который будет использоваться на веб-сайте, т. Е. Пользователь не должен подключаться к Facebook, поскольку нам не нужны его разрешения или доступ к их данным, поэтому я использую маркер доступа к приложению.