Мне удалось вернуть первую страницу моих сообщений с некоторыми подробностями, включая ее идентификатор:
api = 'https://graph.facebook.com/v3.2/me'
key = 'secret'
payload = {'fields':'''
posts{permalink_url,created_time,admin_creator,message}'''
, 'access_token':key}
r = requests.get(api, params = payload)
В документации по API FB Graph вы можете выполнить вызов API, подобный этому /{object-id}/reactions
, поэтомутеперь с удостоверением личности, получение реакции возможно.Но мне нужно получить количество реакций по типу, поэтому после некоторых исследований я обнаружу, что смогу связывать вызовы, как показано ниже.
reactions.type(LIKE).limit(0).summary(1).as(LIKE),
reactions.type(LOVE).limit(0).summary(1).as(LOVE),
reactions.type(WOW).limit(0).summary(1).as(WOW),
reactions.type(HAHA).limit(0).summary(1).as(HAHA),
reactions.type(SAD).limit(0).summary(1).as(SAD),
reactions.type(ANGRY).limit(0).summary(1).as(ANGRY),
reactions.type(THANKFUL).limit(0).summary(1).as(THANKFUL)
Хорошо, теперь все работает, но после паузыЯ понял, что никакие способы в FB не позволят мне выполнять эти вызовы для каждого сообщения, особенно после того, как я получу все идентификаторы сообщений с самого начала и, конечно же, это не так.
Так что есть кое-что и в пакетировании, где я пытался сделать, где я сложил несколько идентификаторов;
fields=id,reactions.type(PRIDE).limit(0).summary(1),reactions.type(LIKE).limit(0).summary(1)&ids=id1,id2
но я получаю это вместо этого;
"message": "Syntax error \"Field reactions specified more than once. This is only possible before version 2.1\"
Отсюда мне совершенно ясно, что FB не позволяет указывать поле более одного раза, а просто делает reactions.limit(0).summary(1)
, просто возвращает общее количество реакций, как я могу получить реакции из каждого поста, не прибегая к API.Это становится все более запутанным, так как API постоянно меняются с течением времени, и теперь у нас есть v3.2
, и большинство методов, которые я исследовал в SO, больше не применяются.