2013-12-17 19 views
5

Tôi đang cố gắng xác thực/đăng nhập bằng API GoodData nhưng tôi đang gặp sự cố. Trên trang web GoodData tài liệu API (docs.gooddata.apiary.io) nó nói phải POST để:Tôi làm cách nào để xác thực với API GoodData?

URL:

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

Headers:

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

JSON Nội dung:

{ "postUserLogin": { "đăng nhập": "[email protected]", "mật khẩu": "yourpassword", "nhớ": 1}}

tôi nhận được câu trả lời "Private API, vui lòng cung cấp băm riêng. " Bất kỳ ý tưởng?

Trả lời

8

được cập nhật GoodData tài liệu API và bảng điều khiển API tọa lạc tại https://developer.gooddata.com/api

URL đăng nhập cho cuộc gọi này là thực sự https://secure.gooddata.com/gdc/account/login

Sử dụng tải trọng tương tự (thông tin của bạn thay vì mẫu), bạn sẽ có thể đăng nhập và lấy Mã SST được trả lại trong tiêu đề SetCookie.

Xin nhớ rằng quá trình đăng nhập là:

  1. POST thông tin của bạn đến tài nguyên đăng nhập như đã đề cập ở đây
  2. SST Mã được trả lại trong phần đầu setcookie
  3. GET tài nguyên mã thông báo với SST Mã trong tiêu đề của bạn để nhận Mã số TT
  4. Sử dụng Mã thông báo TT trong tiêu đề cuộc gọi API của bạn: -cookie

Ngoài ra, hãy nhớ rằng Mã thông báo TT có hiệu lực hạn chế. Khi bạn nhận được Phản hồi không được ủy quyền 401, bạn cần TẢI mã thông báo TT mới trong tài nguyên sau với Mã thông báo SST được chỉ định trong tiêu đề cuộc gọi.xác thực

2

về GoodData Apiary Tôi có ví dụ trong CURL

Bước 1 - ĐĂNG đến 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"}} 

bước thứ 2 là để có được GDCAuthTT sử dụng SST từ phản hồi từ bước 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 

Và sau đó bạn có thể sử dụng tất cả các cuộc gọi khác sử dụng GDCAuthTT của bạn, nhưng GDCAuthTT này có hiệu lực chỉ trong 10 phút và sau 10 phút bạn sẽ nhận được 401 và bạn phải gọi lệnh trước đó một lần nữa cho mới GDCAuthTT

1

hoặc bạn có thể sử dụng python và mã sẽ giống như sau

[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 
Các vấn đề liên quan