Использование API постоянного контакта

#python #constantcontact

Вопрос:

Я пытаюсь использовать Python и API постоянных контактов, чтобы отправлять новых контактов в Постоянный контакт и добавлять их в список. До сих пор я пробовал следующее:

 import requests

url = 'https://api.cc.email/v3/contacts'
url_completed = url   '?api_key='   api_key

post_request = {
    "email_address": {
        "address": "abc123@gmail.com"
    },
    "first_name": "First",
    "last_name": "Last",
    "create_source": "Account",
    "list_memberships": ["xxxxxxxxx"]
}

headers = {
    'Authorization': 'Bearer xxxxxxx',
    'content_type': 'application/json'
}

resp = requests.post(url_completed, data=post_request, headers=headers)
print(resp.raise_for_status())
 

Но когда я запускаю это, я получаю сообщение об ошибке 401 Client Error: Unauthorized for url: https://api.cc.email/v3/contacts?api_key=xxxxxxx

Почему я получаю эту ошибку? Для получения дополнительной информации, просто чтобы убедиться, что я сделал это правильно, я зашел на портал разработчиков постоянных контактов и создал новое приложение. Он дал мне ключ API, который я вставил в URL-адрес, и Секрет, который, как я предположил, был токеном на предъявителя, поэтому заменил его там. Я также протестировал полезную нагрузку, используя пользовательский интерфейс справочной документации по постоянным контактам, который позволяет тестировать полезную нагрузку после аутентификации OAuth, и это удалось. В частности, я использую эту конечную точку.

Комментарии:

1. 401: Несанкционированный пример сообщения об ошибке: Используемый маркер доступа недействителен. Описание: Предоставленный вами маркер доступа или ключ API недействителен или срок его действия истек. Действие: Пожалуйста, предоставьте действительный маркер доступа или используйте поток OAuth для создания нового маркера. Это с веб-сайта «constantcontact.com». Я попытался создать учетную запись, чтобы посмотреть, смогу ли я решить проблему, но для этого требовалось подписаться на деньги.

Ответ №1:

401 означает, что «маркер доступа недействителен». Скорее всего, вы должны использовать не ключ API, предоставляемый приложением, а выделенный токен доступа, предоставляемый потоком OAuth 2.0. Подробнее об авторизации OAuth читайте здесь.