Я пытаюсь работать над базовой реализацией Synchroteam API, используя запросы Python. Мне удалось установить соединение, используя cURL в качестве доказательства концепции и получить все данные, которые я хотел, но с помощью запросов я могу попасть на сайт со своими учетными данными, но все, что я получаю, это:
500
text/html; charset=utf-8
https://apis.synchroteam.com/Api/v1/user/list
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Error</title>
</head>
<body>
<h2>
An error occurred while processing your request.
</h2>
</body>
</html>
Process finished with exit code 0
При использовании curl с этой строкой все возвращает правильную информацию:
curl -u domain:APIKEY -H "Accept: application/json" -H "Content-Type: application/json" https://apis.synchroteam.com/Api/v1/user/List
Мой маленький кусочек кода на Python:
import requestsapiurl = 'https://apis.synchroteam.com/Api/v1/user/list'
login = ("domain", "APIKEY")
headers = {'Content-Type': 'application/json'}
def run():
r = requests.get(apiurl, auth=login, headers=headers)
print r.status_code
print r.headers['Content-type']
print r.url
print r.text
run()
Вся документация Synchroteam имеет примеры на PHP, но я не вижу причин, по которым я не смог бы использовать Python.
Документы здесь: http://api.synchroteam.com/rest.php
Любое понимание было бы здорово, я действительно надеюсь, что это просто что-то маленькое, что мне не хватает.
Спасибо.
Это код Python, который я генерирую, используя Postman. Я уверен, что это поможет вам!
import requests
url = "https://apis.synchroteam.com/Api/v1/User/list"
payload = "{\n \"status\":\"1\"\n}"headers = {
'content-type': "application/json",
'accept': "application/json",
'authorization': "Basic ZGVtbzoxMjEyOThucDIwMDM=",
'cache-control': "no-cache",
'postman-token': "1a3839b6-db5b-0c07-be1a-2816f491476c"}
response = requests.request("GET", url, data=payload, headers=headers)
print(response.text)
Просто измените Auth!
Ник
Других решений пока нет …