python - 使用常量联系 API
问题描述
我正在尝试使用 Python 和 Constant Contact API 将新联系人推送到 Constant Contact 并将它们添加到列表中。到目前为止,我已经尝试了以下方法:
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
为什么我会收到此错误?为了确保我正确执行此操作,我需要更多背景知识,我进入了 Constant Contact开发门户并创建了一个新应用程序。它给了我一个 API 密钥,我将它插入到 URL 中,以及一个秘密,我认为它是不记名令牌,所以在那里替换它。我还使用 Constant Contact 参考文档 UI 测试了有效负载,该 UI 允许在 OAuth 身份验证后测试有效负载,并且那些成功。具体来说,我正在使用这个端点。
解决方案
401 表示“访问令牌无效”。很可能,您不能使用应用程序提供的 API 密钥,而是使用 OAuth 2.0 流程提供的专用访问令牌。在此处阅读有关 OAuth 授权的更多信息。
推荐阅读
- devextreme - devextreme-react datagrid,分别启用编辑器以插入(新行)和编辑(现有行)
- python - 用蛇中的图像替换立方体
- reactjs - 如何使用 jest 和酶访问道具内的 div,如头像,卡片头的动作(来自 materialUI 的卡片元素的子元素)div
- android - 满足约束时如何避免多个工人同时运行?
- codeigniter - 如何在codeigniter中提交表单后重定向url
- node.js - 在angularjs中通过history.replacestate更改url时如何停止页面刷新?
- c# - 如何使用 ASP.Net MVC 5 为 Web 应用程序连接条形码阅读器
- autodesk-forge - 查看器未从 3ds Max 读取某些数据
- awk - grep -v 多行同时
- ionic4 - Ionic 我应该何时导入 app.module 以及何时导入页面模块?