2015-05-18 4 views
1

Я следил за Quick Start Guide на сайте Marketo за их API REST. Все прошло хорошо. Я смог получить успешный ответ со своего сайта.Маркер MarketO 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 Token Dialog

я наткнулся на другое руководство на своем сайте, который описывает другой процесс аутентификации. Marketo Authentication Guide

В этом руководстве упоминается, что токен, возвращаемый из конечной точки API, имеет истечение, поэтому я подозреваю, что все токены Marketo истекают (или мне нужно отключить это). Однако я не смог успешно отправлять запросы на эту конечную точку с моим идентификатором клиента и секретным ключом клиента.

Запрос:

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

по API токенов Marketo REST истекает примерно в 15 минутах от поколения, так что вам нужно повторно запрос маркер – Offbeatmammal

ответ

0

Я не смог понять, почему мои запросы на завивки терпят неудачу, но я смог успешно назвать Marketo API с mrkt, Ruby Gem for Marketo.

Я просмотрел журналы того, что камень генерирует для запросов, и они кажутся точно такими же. Но по крайней мере я теперь успешно называю Марко.

4

Истеки API REST API истек. Поэтому вам обычно нужно запросить токен для каждого сеанса.

с вашего конкретным установленным URL, как: MARKETOURL/идентичность/OAuth/tokengrant_type = client_credentials & client_id = а & client_secret = хуг

что приведет к (например):

{ 
"access_token": "1234", 
"token_type": "bearer", 
"expires_in": 3599, 
"scope": "[email protected]" 
} 

Вы будете необходимо выполнить сеансы с этим запросом для последующих вызовов. У меня есть код, который запускается первым, а затем запрашивает новый токен, если он истекает. Поле expires_in находится в секундах.

Источник: http://developers.marketo.com/documentation/rest/authentication/

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> 
+1

Это лучше [добавить больше контекста/объяснение] (Http: //meta.stackexchange. com/questions/114762/explaining-whole-code-based-answers) вокруг кода (в отличие от простого ответа только на код), поскольку это делает ответ более полезным. – EJoshuaS