使用curl通过Salesforce API获取数据失败

时间:2018-11-05 13:38:23

标签: curl groovy salesforce

我在这个问题上已经有一段时间了,我认为现在该寻求帮助了。

我正在尝试使用Groovy和简单的“ curls”从salesforce Rest api获取一些基本信息。

为了从Salesforce API获取数据,我使用以下方法获取访问令牌:

def accessTokenCurl = 'curl -X post '+ salesforceUrl + '? 
grant_type=password&client_id=' + clientId + '&client_secret='+clientSecret+'&username=' + userName + '&password=' + 
password + ' -H "Content-Type=application/x-www-form-urlencoded"'

返回以下内容:

{
access_token=00D1x0000008cHb!ARkAQE2kWaUtv_
f4ENopZ2ntgtu21ZPAieOWn7PR3bDO4No_
epsHUbOBo8ixq23qTIK4VqdhGdbJLaCmRNyoeVn2I8hJRf8L,
instance_url=https://test123.salesforce.com, 
id=https://test.salesforce.com/id/
00D1x0000008cHbeAI/0051x000000cQg1AAA,
token_type=Bearer, 
issued_at=1541489804275, 
signature=K4ij5MfP0iZD8J4xDeIWozuDEvnWovAc4d9yfVFpfGc=
}

看起来正确。

现在我想访问一些简单的数据:

def testcurl = "curl 
https://test123.salesforce.com/services/data/v4.0/query/? 
q=SELECT+contact.AccountId+from+contact+where+contact.Email 
+=+mn@aety.io -H Authorization: OAuth " + accessToken

它返回错误:

[{"message":"Session expired or 
invalid","errorCode":"INVALID_SESSION_ID"}]

我阅读了多个站点,可能是因为!在访问令牌中,所以我用

替换了它

accessToken.replace(“!”,'\!')

似乎正确,这里是“转义”字符串:

00D1x0000008cHb!ARkAQEIE20ES9DRFoOXHiiIzFwOeGtnGBg15TYeEFz4t9TUYkSHY.guZ0bBbgRgGKXpbWZzlWrX3cDFT_LXmgBw2iGjRJA5W

如您所见,它已经在\!前面插入了\!..那么为什么它会附带无效的会话ID?!

0 个答案:

没有答案