Привет! Я пытался понять, как правильно передать запрос graphQL в запрос на публикацию Python.
Пример graphQL скручен, как это показано на веб-сайте API комиссионных соединений:
curl -H "Authorization: Bearer <your-personal-access-token> -XPOST
https://commissions.api.cj.com/query -d '{ publisherCommissions(forPublishers: ["999"], sincePostingDate:"2018-08-08T00:00:00Z",beforePostingDate:"2018-08-09T00:00:00Z"){count payloadComplete records {actionTrackerName websiteName advertiserName postingDate pubCommissionAmountUsd items { quantity perItemSaleAmountPubCurrency totalCommissionPubCurrency } } } }'
Я пытаюсь использовать python для имитации запроса:
import requests
headers = {"Authorization": "Bear token"}
def run_query(query):
request = requests.post('https://commissions.api.cj.com/query', json={'query': query}, headers=headers)
if request.status_code == 200:
return request.json()
else:
raise Exception("Query failed to run by returning code of {}. {}".format(request.status_code, query))
query="""
{
publisherCommissions(forPublishers: ["999"]) {
records
}
}
"""
result = run_query(query)
Но всегда получаю ответ 400. Я не знаю, может ли python вообще принимать формат graphQL? Как я могу отформатировать, чтобы пост-запрос мог его распознать. Спасибо!