Проблемы с аутентификацией Airtable API при создании поля с python

1

[новичок вопрос]

Я пытаюсь создать новую запись в моей базе Airtable с помощью python 3. Команды curl в документации выглядят следующим образом:

$ curl -v -XPOST https://api.airtable.com/v0/restoftheurl \
-H "Authorization: Bearer My_API_Key" \
-H "Content-type: application/json" \
 -d '{
  "fields": {
    "Item": "Headphone",
    "Quantity": "1",
    "Customer_ID": [
      "My_API_Key"
    ]
  }
}'

Код python, который я пытался использовать, это:

import requests

API_URL = "https://api.airtable.com/v0/restoftheurl"

data = {"Authorization": "Bearer My_API_Key","Content-type": 
"application/json","fields": {"Item": "randomitem","Quantity": 
"5","Customer_ID": ["randomrecord"]}}

r = requests.post(API_URL, data)
print(r.json())

Где ответ - ошибка:

{'error': {'type': 'AUTHENTICATION_REQUIRED', 'message': 'Authentication required'}}

Как я должен правильно аутентифицировать это, или я?

Теги:
curl
python-3.x
airtable

1 ответ

0
Лучший ответ

Вы должны отличить тело (данные) от заголовков. Использование json named argument автоматически устанавливает тип содержимого в application/json:

import requests

API_URL = "https://api.airtable.com/v0/restoftheurl"

headers = {
    "Authorization": "Bearer My_API_Key"
}

data = {
    "fields": {
        "Item": "randomitem",
        "Quantity": "5",
        "Customer_ID": ["randomrecord"]
    }
}

r = requests.post(API_URL, headers=headers, json=data)
print(r.json())
  • 0
    Спасибо, это исправлено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню