当前位置: 首页 > 知识库问答 >
问题:

Marketo API和Python,发布请求失败

毕宏盛
2023-03-14

我们正在尝试编写一个小型库,以便使用Python与您的API交互。我们试着用cURL推铅球,结果很顺利:

1.-获取OAuth令牌:

curl "https://700-HZF-887.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=45811e23-3223-4cc4-811e-e00f0000acc8&client_secret=000000000000000000000"

答复:

{"access_token":"00000000000000000aaaaaaaaaaaaaaa:sj","token_type":"bearer","expires_in":1895,"scope":"fernando@email.com"}

2.-创建/更新潜在客户:

curl -H 'Content-Type: application/json' -H 'Authorization: Bearer 00000000000000000aaaaaaaaaaaaaaa:sj' -d '{"action": "createOnly", "input": [{"LastName": "LastNameTest", "email": "testemail@email.com", "FirstName": "TestName", "MobilePhone": "12345"}]}' https://700-HZF-887.mktorest.com/rest/v1/leads.json

最后一个命令响应成功,领导出现在Marketo的仪表板上。到目前为止还不错。

我们正试图使用请求库在Python中实现同样的目标:

我们首先创建两个字典,负载和头:

payload = {'action': 'createOnly', 'input': [{'email': email, 'FirstName': first_name, 'LastName': last_name, 'MobilePhone': phone}]}

headers = {'Content-type': 'application/json', 'Authorization:': 'Bearer ' + str(token['access_token'])}

然后我们触发帖子请求:

base_url = 'https://700-HZF-887.mktorest.com/rest/v1/leads.json'

response = requests.post(base_url, data=payload, headers=headers)

其中令牌变量是包含在代码中之前获得的访问令牌的列表。当我运行代码时,我得到以下结果:

Headers: {'Content-type': 'application/json', 'Authorization:': 'Bearer f020000-0000-4001-a00d-c040000d0000:dw'}
Payload: {'action': 'createOnly', 'input': [{'LastName': 'testname', 'email': 'test@email.com', 'FirstName': 'testfirstname', 'MobilePhone': '12345'}]}
Response: {"requestId":"3000#147f4860000","success":false,"errors":[{"code":"600","message":"Access token not specified"}]}

你知道为什么当我认为我真的在请求中添加令牌时,我得到的代码是:600访问令牌没有指定为响应吗?

共有1个答案

晋言
2023-03-14

在授权标头中有一个额外的":"。去掉它,你应该会很好。

 类似资料:
  • 问题内容: 我需要进行API调用,以上传文件以及带有有关文件详细信息的JSON字符串。 我正在尝试使用python请求库来执行此操作: 这将引发以下错误: 如果我从请求中删除“文件”,则它可以工作。 如果我从请求中删除了“数据”,它将起作用。 如果我不将数据编码为JSON,则可以使用。 因此,我认为错误与在同一请求中发送JSON数据和文件有关。 关于如何使它工作的任何想法? 问题答案: 不要使用j

  • 问题内容: 我需要将JSON从客户端发布到服务器。我正在使用Python 2.7.1和simplejson。客户端正在使用请求。服务器是CherryPy。我可以从服务器获取硬编码的JSON(代码未显示),但是当我尝试将JSON POST到服务器时,出现“ 400 Bad Request”。 这是我的客户代码: 这是服务器代码。 有任何想法吗? 问题答案: 从Requests 2.4.2及更高版本开

  • 以下是我的情况: < li >客户端向Netty服务器发送POST请求。 < li>Netty处理POST请求,如果服务器确定需要发送响应,它会将响应发送回客户端。否则,服务器必须向另一个endpoint发送POST请求,获取响应并将该响应发送回客户端。 到目前为止,我已经处理了传入的POST请求。要发送传出的POST请求,这是我在Handler中所做的。 这显然是错误的,因为我正在处理程序中启动

  • 问题内容: 在views.py中: 我想通过jQuery将此数据(名称和年龄)发送到“ SomeView”中的此发布函数。这是与加载的模板相同的视图,只是请求类型不同。在get()上加载模板,并在post上调用post()函数。可能吗?我检查了其他问题并获得了此解决方案。它应该正在工作。我究竟做错了什么? 问题答案: 如果传入的POST请求未能通过Csrf检查,则Django返回403响应(禁止)

  • 使用Cookie访问经过身份验证的网页时,出现SSL错误。这似乎是一个mac特定的问题,许多人通过安装python证书来解决(正如我在下图的终端会话中尝试的那样),但是当我尝试安装时,会抛出一个异常()。 我应该如何修复此错误? 代码: 错误消息: 尝试的解决方案: 编辑5/19 附加终端会话(来自建议的解决方案): 编辑5/21 试图在项目中包含SSL,但引发错误。。这似乎是相关的,但是,当检查

  • 问题内容: 我正在尝试使用Python和请求库登录网站以进行某些抓取,但我正在尝试以下操作(无效): 但是,nada,重定向到登录页面。我需要打开一个会话吗?我执行了错误的POST请求,是否需要加载cookie?还是会话会自动执行?我在这里迷路了,需要一些帮助和解释。 我要登录的网站是php,我是否需要“捕获set- cookie并设置cookie标头”?如果是这样,我不知道该怎么做。该网页是具有