2013-12-17 1 views
5

Я пытаюсь пройти аутентификацию/логин с помощью API GoodData, но у меня возникают проблемы. На сайте GoodData API документации (docs.gooddata.apiary.io) говорится в POST для:Как аутентифицировать API GoodData?

URL:

https://secure.gooddata.com/gdc/account/login

заголовкам:

Accept: application/json 
Content-Type: application/json 

JSON Кузов:

{ "postUserLogin": { "логин": "[email protected]", "пароль": "ВАШ ПАРОЛЬ", "помнить": 1}}

Я получаю ответ «Private API, предоставьте личный хэш ». Есть идеи?

ответ

8

Обновленный GoodData API документация и API консоли находится в https://developer.gooddata.com/api

Логин URL для этого вызова на самом деле https://secure.gooddata.com/gdc/account/login

Используя ту же полезную нагрузку (учетные данные вместо образца), вы сможете войти в систему и получить токен SST, который возвращается в заголовке SetCookie.

Пожалуйста, помните процесс входа в систему:

  1. POST учетные данные ресурса входа, как указано здесь
  2. SST Токен возвращается обратно в заголовке SetCookie
  3. GET лексемы ресурс с SST лексема ваш заголовок получить TT Токен
  4. Используйте TT Токен в вашем API требует заголовок: -cookie

Кроме того, помните, что TT Token имеет ограниченный срок действия. После получения 401 Unauthorized Response вам необходимо получить новый токен TT в следующем ресурсе с помощью токена SST, указанного в заголовке вызова.Аутентификация

2

относительно GoodData Пасека у меня есть пример в CURL

первый Шаг - POST до https://secure.gooddata.com/gdc/account/login:

[email protected]:~$ curl --include --header "Accept: application/json" --header "Content-Type: application/json" --request POST --data-binary "{\"postUserLogin\":{\"login\":\"[email protected]\",\"password\":\"`cat my_pass.txt`\",\"remember\":1}}" "https://secure.gooddata.com/gdc/account/login" 
HTTP/1.1 200 OK 
X-GDC-REQUEST: 7AEoVKre3lTF8sUV 
Server: Apache 
Set-Cookie: GDCAuthTT=; path=/gdc; expires=Sat, 07-Sep-2013 22:16:26 GMT; secure; HttpOnly 
Set-Cookie: GDCAuthSST=jcftYGCC3u6pkNRK; path=/gdc/account; expires=Wed, 23-Oct-2013 22:16:26 GMT; secure; HttpOnly 
Expires: Mon, 26 Jul 1997 05:00:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' 
X-GDC-REQUEST-TIME: 69 
Content-Type: application/json;charset=UTF-8 
Content-Length: 143 
Accept-Ranges: bytes 
Date: Mon, 07 Oct 2013 22:16:26 GMT 
X-Varnish: 2109577795 
Age: 0 
Via: 1.1 varnish 
Connection: keep-alive 

{"userLogin":{"profile":"/gdc/account/profile/254c399a3f5131b7026313d4f8761410","state":"/gdc/account/login/254c399a3f5131b7026313d4f8761410"}} 

второй шаг, чтобы получить GDCAuthTT с помощью SST от ответа от 1-го этапа:

[email protected]:~$ curl --include --header "Cookie: $Version=0; GDCAuthSST=jcftYGCC3u6pkNRK; $Path=/gdc/account" --header "Accept: application/json" --header "Content-Type: application/json" https://secure.gooddata.com/gdc/account/tokenHTTP/1.1 200 OK 
X-GDC-REQUEST: GqPnYyk3pKAW5eju 
Server: Apache 
Set-Cookie: GDCAuthTT=h3CUUg72U2SLhL7Tghj_TVnba6byjgj3L78aJkSFuoji_0DiqXGRYY7C1zWDa-2yIa0Aj3-MuVlWPdNSx7N7CDzM7w21Fl6OaMjuF-98bV6cRx34HW-ql6IGt6ufWo_U5fQa2QqU6b-F0MsGE6orDC6ZMt2anJQdATNYsHfELiB7ImwiOiIwIiwidSI6IjE3Mzk4NyIsImsiOiJiZWQyZWU1ZS05YzYxLTRhNWMtOWJlNi05ZTAxZDQ4NjI5NmEiLCJ1aWQiOiIyNTRjMzk5YTNmNTEzMWI3MDI2MzEzZDRmODc2MTQxMCIsInYiOjEzODExODQ4MTZ9; path=/gdc; secure; HttpOnly 
Expires: Mon, 26 Jul 1997 05:00:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' 
X-GDC-TIMESTAMP: 600 
X-GDC-REQUEST-TIME: 20 
Content-Type: application/json;charset=UTF-8 
Content-Length: 2 
Accept-Ranges: bytes 
Date: Mon, 07 Oct 2013 22:16:56 GMT 
X-Varnish: 1661889108 
Age: 0 
Via: 1.1 varnish 
Connection: keep-alive 

И тогда вы можете использовать все другие вызовы, используя свой GDCAuthTT, но это GDCAuthTT имеет значение только 10 минут и после 10 минут вы получите 401, и вы должны вызвать предыдущую команду снова для нового GDCAuthTT

1

или вы можете использовать Python и код должен выглядеть так

[email protected]:~$ python 
Python 2.7.3 (default, Jan 2 2013, 13:56:14) 
[GCC 4.7.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from urllib2 import Request, urlopen 
>>> from json import dumps 
>>> values = dumps({"postUserLogin":{"login":"[email protected]","password":"secredpassword","remember":1}}) 
>>> headers = {"Accept": "application/json", "Content-Type": "application/json"} 
>>> request = Request("https://secure.gooddata.com/gdc/account/login", data=values, headers=headers) 
>>> response_body = urlopen(request) 
>>> print response_body.read() 
{"userLogin":{"profile":"/gdc/account/profile/254c399a3f5131b7026313d4f8761410","state":"/gdc/account/login/254c399a3f5131b7026313d4f8761410"}} 
>>> print response_body.info() 
X-GDC-REQUEST: FnETpOmoAPELJoS1 
Server: Apache 
Set-Cookie: GDCAuthTT=; path=/gdc; expires=Wed, 08-Jan-2014 20:07:00 GMT; secure; HttpOnly 
Set-Cookie: GDCAuthSST=QubuMlx3byz6lta1; path=/gdc/account; expires=Sun, 23-Feb-2014 20:07:00 GMT; secure; HttpOnly 
Expires: Mon, 26 Jul 1997 05:00:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' 
X-GDC-LOG-HEADER: 
X-GDC-REQUEST-TIME: 53 
Content-Type: application/json;charset=UTF-8 
Content-Length: 143 
Accept-Ranges: bytes 
Date: Fri, 07 Feb 2014 20:07:00 GMT 
X-Varnish: 1076092393 
Age: 0 
Via: 1.1 varnish 
Connection: close 

>>> headers = {"Cookie": "$Version=0; GDCAuthSST=QubuMlx3byz6lta1; $Path=/gdc/account", "Accept": "application/json", "Content-Type": "application/json"} 
>>> request = Request("https://secure.gooddata.com/gdc/account/token", headers=headers) 
>>> response_body = urlopen(request) 
>>> print response_body.read() 
{} 
>>> print response_body.info() 
X-GDC-REQUEST: IyuefQK4mMIm4Vqr 
Server: Apache 
Set-Cookie: GDCAuthTT=VL_Bum5jjd8cEtFUa6XF5tfVmmiFDn7ZyB6a95kEuhzlQw-D67RIL_8u1E9e_z3yDx2bgHrsVNwX6zY1XRzsVpgtvC7HY2JBWiTtq63_Y-XxQwN9cO9RJO6GwM8WnshREwXXgzUk0vr9U4Gg-a4FnEs5NR4ySWOW1bhjnFSJFG17ImwiOiIwIiwidSI6IjE3Mzk4NyIsImsiOiIxYTZiNzc4ZC0yNDkyLTQ2OWEtODliYy1lNWQ1OWU1ODAyNDUiLCJ1aWQiOiIyNTRjMzk5YTNmNTEzMWI3MDI2MzEzZDRmODc2MTQxMCIsInYiOjEzOTE4MDQzMjV9; path=/gdc; secure; HttpOnly 
Expires: Mon, 26 Jul 1997 05:00:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
P3P: CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT' 
X-GDC-TIMESTAMP: 600 
X-GDC-LOG-HEADER: 
X-GDC-REQUEST-TIME: 30 
Content-Type: application/json;charset=UTF-8 
Content-Length: 2 
Accept-Ranges: bytes 
Date: Fri, 07 Feb 2014 20:08:45 GMT 
X-Varnish: 1076094531 
Age: 0 
Via: 1.1 varnish 
Connection: close 

 Смежные вопросы

  • Нет связанных вопросов^_^