tistory 오픈 api 인증은 OAuth 2.0 프로토콜을 사용함.
컨슈머 등록을 위해 Client ID와 Secret Key를 발급 받아야 함.
Service Provider => 티스토리 인증 서버.
Consumer => 인증 요청을 하는 사용자 어플리케이션, 서버.
Callback 경로 => 인증 시 Access Token이 리다이렉트 되는 경로.
Tistory는 Implicit Grant Flow로 서버사이드의 Authorization Code 인증 방식과 달리 Client ID만 가지고 서비스 권한 요청이 가능함.
(그림 출처 : http://metalkin.tistory.com/43#)
1. 클라이언트(consumer)에서 티스토리 서버(Service Provider)로 Access Token을 요청하면
2. 사용자 로그인(ID/PASS)을 요구함. 성공적으로 로그인이 되면
3. Consumer 등록시에 입력된 Callback 경로로 Access Token을 실어 리다이렉트 시킨다.
4. 해당 Access Token과 조회할 블로그 아이디로 최근 댓글 목록 API 호출
5. XML 리턴. (API URL에 &output=json 파라미터를 추가하여 호출하면 JSON 리턴)
* 티스토리 인증 가이드의 설명과 달리, Access Token의 만료 시간을 뜻하는 expires_in 파라미터는 리다이렉트 URL에 실려 오지 않는다. 유효시간은 3600(60분)으로 디폴트 설정 되어있다.
해당 Access Token이 시간경과(60분)로 인해 만료되면, 티스토리 API 호출 시 , Access Token이 만료되었다는 XML을 다음과 같이 리턴하게 된다.
<?xml version="1.0" encoding="utf-8"?>
<tistory>
<status>500</status>
<err_message>access_token의 유효시간이 만료 되었습니다.</err_message>
</tistory>
이 경우에는 새로운 Access Token을 발급받아(1~3번) 사용하여야 한다.
만일 User Login에 사용한 어플리케이션의 웹 브라우저 인스턴스를 종료하였다면 또 다시 로그인을 유지해야하는 문제가 생기니 로그인에 사용한 해당 브라우저의 인스턴스를 어플리케이션 종료 시점까지 유지 시켜줘야 함.
참고 사이트
http://metalkin.tistory.com/43#
'Old > OPEN API' 카테고리의 다른 글
olleh ucloud 개발지원센터 (0) | 2013.11.19 |
---|---|
Oauth (0) | 2013.11.18 |
soundcloud (0) | 2013.11.15 |
네이버 신디 케이션 (0) | 2013.11.08 |
bit.ly 주소 축약 API (0) | 2013.10.24 |