Не удается получить данные через API Salesforce с помощью curl - PullRequest
0 голосов
/ 05 ноября 2018

Я уже давно занимаюсь этим вопросом и думаю, что пришло время обратиться за помощью.

Я пытаюсь получить основную информацию от API Salesforce Rest, используя Groovy и простые "локоны".

Чтобы получить данные из API Salesforce, я получаю токен доступа, используя:

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 ("!", '\!')

и похоже, что это правильно, вот строка "escape":

00D1x0000008cHb! ARkAQEIE20ES9DRFoOXHiiIzFwOeGtnGBg15TYeEFz4t9TUYkSHY.guZ0bBbgRgGKXpbWZzlWrX3cDFT_LXmgBw2iGjRJA5W

как вы можете видеть, он вставил \ infront "!" .. так почему, черт возьми, он идет с неверным идентификатором сессии?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...