我在Marketo的网站上关注了Quick Start Guide的REST API。这很顺利。我能够从他们的网站获得成功的回复。
请求:
curl https://ABC-DEF-123.mktorest.com/rest/v1/lists.json?access_token=123:ab
响应:
{"requestId":"123#abcf7aff","result":[],"success":true}
然而,当我第二天尝试相同的请求时,我收到了:
{"requestId":"123#abc6731ab6f","success":false,"errors":[{"code":"601","message":"Access token invalid"}]}
我登录了Marketo管理员,发现我从对话框中复制并粘贴的令牌不同。我尝试了这个新的,它起作用了。
(这取自指南)
我在他们的网站上遇到了另一个描述不同身份验证过程的指南。 Marketo Authentication Guide
本指南提到从API端点返回的令牌已过期,因此我怀疑所有Marketo令牌都已过期(或者我需要禁用此功能)。但是,我无法使用我的客户端ID和客户端密钥成功向此端点发出请求。
请求:
curl https://ABC-DEF-123.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=ACLIENTID&client_secret=ACLIENTSECRET
响应:
{"error":"unauthorized","error_description":"An Authentication object was not found in the SecurityContext"}
任何正确方向的帮助都将受到赞赏。提前谢谢。
答案 0 :(得分:5)
REST API令牌过期。因此,您通常需要为每个会话请求令牌。
来自您的特定安装网址,例如:MARKETOURL / identity / oauth / tokengrant_type = client_credentials& client_id = abc& client_secret = xyz
这将导致(示例):
{
"access_token": "1234",
"token_type": "bearer",
"expires_in": 3599,
"scope": "email@email.com"
}
您需要使用此请求开始会话以进行后续调用。我的代码首先运行,然后在它到期时请求新的令牌。 expires_in字段以秒为单位。
来源:http://developers.marketo.com/documentation/rest/authentication/
答案 1 :(得分:0)
我无法弄清楚为什么我的curl请求失败了,但我能够成功调用Marketo API和mrkt,这是一个Ruby Gem for Marketo。
我查看了宝石为请求生成的内容的日志,它们看起来完全相同。但至少我现在成功地打电话给Marketo。
答案 2 :(得分:0)
您需要使用以下序列。
grant_type= client_credentials
client_id =you will get Marketo admin where you generate token
client_secret=you will get Marketo admin where you generate token
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
GET <Identity URL>/oauth/token?grant_type=client_credentials&client_id=<Client Id>&client_secret=<Client Secret>
答案 3 :(得分:0)
根据Marketo的文档,您的第一次呼叫失败,因为您的令牌当前每小时都过期。
您的curl调用获取新令牌失败,因为curl(或其他东西)剥离了auth参数。尝试将网址用引号引起来。
curl "https://ABC-DEF-123.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=ACLIENTID&client_secret=ACLIENTSECRET"
您可以使用-v
标志来获取有关卷曲发送内容的更多信息。运行该命令将为您提供足够的信息,至少可以知道您没有将整个URL传递给请求。
curl -v https://ABC-DEF-123.mktorest.com/identity/oauth/token?grant_type=client_credentials&client_id=ACLIENTID&client_secret=ACLIENTSECRET