Простой пакетный запрос для Graph API, возвращающий ошибку Unsupported Post Request - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь получить показатели взаимодействия с общественностью через Graph API для получения списка ссылок. Так как их много, необходим пакетный запрос, чтобы не нарушать ограничения скорости. Используя конечную точку взаимодействия для ссылок и руководство по пакетному API , предоставленное Facebook, я отформатировал пакетный запрос как список словарей и отправил через POST вместо get.

Но когда я запускаю свой код (см. Ниже), я получаю ошибку Unsupported Post Request.

Я позади и измотан, и любая помощь будет принята с благодарностью.

Вот мой код:

import requests
import json 
from fbauth import fbtoken

link1 ='https://www.nytimes.com/2018/07/02/world/europe/angela-merkel-migration-coalition.html'
link2 ='https://www.nytimes.com/2018/07/02/world/europe/trump-nato.html'

# input dictionary for request
batch=[{"method":"GET", "relative_url": '/v3.0/url/?id={0}'.format(link1)},
   {"method":"GET", "relative_url": '/v3.0/url/?id={0}'.format(link2)}]

url = 'https://graph.facebook.com'
payload = json.dumps(batch)
headers = {'access_token : {0}'.format(fbtoken)}
response = requests.post(url, data=payload)
Robj = response.json()

print(Robj)

А вот и ошибка:

{'error': {'message': 'Unsupported post request. Please read the Graph 
API documentation at https://developers.facebook.com/docs/graph-api', 
'type': 'GraphMethodException', 'code': 100, 'error_subcode': 33, 
'fbtrace_id': 'AcxF9FGKcV/'}}

1 Ответ

0 голосов
/ 05 августа 2019

Вам необходимо передать пакетные запросы, используя параметр batch, например:

payload = {'batch': json.dumps(batch)}

...