티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 2부를 시작합니다.
1부에서 OAuth 흐름에 대해서 언급하지 못하고 지나갔었는데요.
대략 흐름은 아래와 같습니다.
1. 블로거가 Consumer 로 등록된 사이트에 접속
예) http://tistory.i-swear.com
2. Access Token 을 받기 위해서 티스토리로 페이지 이동
이때 로그인이 되어있지 않다면 로그인 창이 뜹니다.
3. 블로거가 TISTORY OAUTH 창으로 접속됩니다. 아래 이미지 참조.
이곳에서 허가하기를 누르면 Access Token 이 발급되어 Consumer 에서 등록한 권한 (읽기, 읽기/쓰기) 를 가지게 됩니다.
물론 취소를 누른다면 창은 닫히게 되고요. ^^.
이 Access Token 을 가지고 허용된 API (글정보,글수정,글삭제,글등록 등등) 을 사용할수 있게 됩니다.
대충 설명은 이렇게 하고요.
그럼 이제, 코딩 시작.....
아주 심플하게 코딩만 할것이기 때문에 크래킹이나 XSS 에 대해서 고려하지 않음을 알려드립니다.
티스토리 오픈API 로 Access Token 을 받자.
1부에서 Client Id , Secret Key 를 발급받았습니다.
그럼 얘들을 어디에 쓰느냐...
내가 이런 저런 서비스를 하기 위한 고유의 키(?)라고 생각하시면 됩니다.
일일이 복사하기 귀찮은 분들위한 다운로드 서비스.
config.php 파일을 만들자.
config.php 에는 Client ID 와 Secret Key 를 저장해 둡시다.
### php
config.php
$_client_id = "티스토리에서 발급받은 Client ID 를 입력";
$_secret_key = "티스토리에서 발급받은 Secret Key 를 입력";
$_callback_url = "http://티스토리 Consumer 에 입력한 CallBack 경로";
토대로 step1.php 파일을 만듭니다.
이 파일의 역할은 티스토리에 로그인 한 사용자에게서 Access Token 을 받기 위해 티스토리로 Redirect 해주는 파일입니다.
### php
step1.php
include "config.php";
$url = "https://www.tistory.com/oauth/authorize/";
$url .= "?client_id={$_client_id}";
$url .= "&redirect_uri={$_callback_url}";
$url .= "&response_type=code";
header("Location: {$url}");
이제 callback.php 파일을 만듭니다.
이 파일의 역할은 티스토리에서 TISTORY OAUTH 을 허가한 사용자의 code 을 넘겨줍니다.
step2.php 로 해야되는데, CallBack 부분이기 때문에 callback.php 로 하겠습니다.
GET 변수로 code 가 넘어오므로, 이 값을 가지고 Access Token 을 받아야 합니다.
### php
callback.php
include "config.php";
$url = "https://www.tistory.com/oauth/access_token/?";
$url .= "&client_id={$_client_id}";
$url .= "&client_secret={$_secret_key}";
$url .= "&redirect_uri=" . urlencode($_callback_url);
$url .= "&code={$_GET['code']}";
$url .= "&grant_type=authorization_code";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_HEADER, false);
$content = curl_exec($ch);
curl_close ($ch);
$content = str_replace('access_token=', '', $content);
$_SESSION['access_token'] = $content;
이제 access token 을 받았으니, 글읽기와 글수정에 대해서 알아보겠습니다.
이 글과 연관된 글
2013/01/04 - 티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 1부
2013/01/04 - 티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 2부
2013/01/05 - 티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 3부
2013/01/10 - 티스토리 구글애드센스 데스크탑,모바일 광고 구분하여 보내기
'Computer > PHP' 카테고리의 다른 글
443번 포트가 아닌 포트일때 로그인,글쓰기 안되는 사람이 있다. (3) | 2013.05.07 |
---|---|
티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 3부 (15) | 2013.01.05 |
티스토리 오픈 API 를 이용하여 내 블로그 글 수정하기 1부 (9) | 2013.01.04 |
한글메일의 인코딩,디코딩 (0) | 2012.08.10 |
인코딩 디코딩의 종류 (0) | 2012.08.10 |