Вызов API suiteCRM возвращает 401

Я пытаюсь вызвать CRM Suite API, но он просто возвращает 401.

{"error":"access_denied","message":"The resource owner or authorization server denied the request.","hint":"Missing \\"Authorization\\" header"}

вот как я вызываю API в python

import requests
url = "https://crm.unlokdevelopment.com/api/access_token"

payload = "{"client_credentials":"client_credentials",\n"client_id":****** ",\n"client_secret":"******"}" print(payload)

headers = { 'Content-Type': 'application/vnd.api+json', 'Accept': 'application/vnd.api+json' } 

print(headers)
response = requests.request("POST", url, headers=headers, data=payload) 

print(response)
print(response.text.encode('utf8'))

пожалуйста, скажите мне, что я делаю неправильно. Я также пробовал почтальона, но не повезло. я подтвердил правильность учетных данных


person Salman Ahmed    schedule 06.07.2020    source источник


Ответы (1)


Две вещи, которые я могу добавить

  1. В вашем запросе отсутствует grant_type, я использую password в качестве типа.
  2. У меня была такая же проблема, когда я НЕ использовал этот заголовок application/x-www-form-urlencoded вместо типа json.

Полный рабочий пример в pythong, который я получил от моей бессонницы (например, почтальона) сохраненных запросов

import http.client

conn = http.client.HTTPSConnection("nobody.crm.cr")

payload = "scope=&grant_type=password&client_id=f334234324234234-5e506c358845&client_secret=fiasdasd&username=admin&password=myPasswordIsSecure"

headers = {
    'content-type': "application/x-www-form-urlencoded",
    'accept': "application/json"
    }

conn.request("POST", "/Api/access_token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
person mrbarletta    schedule 07.07.2020