컴퓨터2013. 8. 31. 13:39
300x250



ㅁ 우선, API v1 은 더이상 사용되지 않는다.


API v1 Retirement is Complete - Use API v1.1

https://dev.twitter.com/blog/api-v1-is-retired

https://blog.twitter.com/2013/api-v1-retirement-is-complete-use-api-v11



2013-06-11 에 포스팅된 트워터 블로그에 API v1 이 완전히 종료되었으며 v1.1 로 완전 전환되었다고 올라왔다. 

그리고, 지금은 v1 REST 서비스는 서비스 되지 않는다. 


API v1 로 만들어진 많은 서비스들이 동작하지 않을 것으로 보이며, v1.1 로 전환하여야 했을 것이다. 



ㅁ v1 과 v1.1 의 차이점


v1 과 v1.1 의 가장 큰 차이는.. 

v1 때는 statuses/user_timeline 이나 users/show 등을 별도 인증 없이 호출하면 xml 로 반환해 주었다. 

그러나, v1.1 에서는 그냥은 안준다. OAuth 인증을 해야 준다.


두번째 차이는..

v1.1 API 에서는 json 데이타로만 서비스된다. xml 데이타로는 반환되지 않는다.

v1 을 이용하던 대부분의 어플들이 xml 로 작성했을 텐데, 이또한 큰 변화라 생각된다. 


본인도 트위터 글을 api 로 불러와서 보여 주는 페이지가 있어서, 

수정을 위해서 api v1.1 oauth php 버전을 검색을 해 보았다. 


코드 수정을 위해 검색을 하는 데 뭔가 좀 이상하다는 느낌이 든다.

분명 v1 이 종료된 것이 최근인데, 최근의 v1.1 oauth 관련 글이 별로 없다.

oauth 에 대한 글을 거의 2010 년도 전후의 글들이다.


2가지 정도로 가능성을 예측할 수가 있을 것 같다. 

하나는, 옛날에 이미 다 수정해서 바꿔 버린 것이다. 개발자들이 발빠르게 대응했다?

다음은, api 바뀐 게 의미가 없어져 버린 것이다. 이젠 트워터를 안쓴다는 것 아닐까? ^^


하여간, API 를 변경해 보자..

나는 간단히 특정 screen_name 의 user_timeline 만 불러오기를 원하는데, 검색되는 소스들은 너무 복잡하다. 

그리고, 내가 원하는 소스는 보이지 않는다..


검색된 페이지에 있는 각종 링크들도 몇년된 것들이라 바뀌거나 없어진 링크들이 많다..

최신 정보들로 다시 작성해 본다.  



ㅁ 트워터 API v1.1 OAuth 로 user_timeline 가져오기 PHP 버전


1. 우선 트위터 개발자 사이트에서 OAuth 키 발급받기


사이트 : https://dev.twitter.com/apps

오른쪽에 있는 Create a new application 버튼을 눌러 키 4가지를 얻는다. 

consumer_key, consumer_secret, access_token, access_token_secret  이 네가지 키를 발급받는다.

Callback URL 은 트위터 포스팅 등에는 필요한 듯 하나, 단순히 user_timeline 을 가져오는 데는 필요없어도 된다.


2. twitter oauth 모듈 설치하기


트위터 사이트에서도 언급되어 있다는, 트위터 REST API 의 OAuth 지원을 위한 PHP 라이브러리인 twitteroauth

https://github.com/abraham/twitteroauth   에서  releases  에 들어가 마지막 버전을 다운 받는다.

현재 마지막 버전이 0.2.0-beta3 으로, 이것도 3년전 버전이다. ^^ 

다운받아서 홈페이지 소스가 있는 서버에 올려서 적당한 위치에 압축을 푼다.


3. 소스 작성하기


<?php

// twitteroauth 중에서 필요한 것 인클루드 시킨다. OAuth.php 파일과 같은 폴더에 있는 것으로, OAuth.php 도 인클루드 된다.

include_once("../twitteroauth/twitteroauth/twitteroauth.php");  


// 발급받은 키값을 변수에 입력해 준다.

$consumer_key = ''; // Consumer key

$consumer_secret = ''; // Consumer secret

$access_token = ''; // Access Token

$access_token_secret = ''; // Access Token Secret


$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

$query = "http://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=10";

$content = $connection->get($query);


// 찍어 본다.

echo print_r($content,true);  // 배열로 넘어오기 때문에 print_r 로 찍어본다.


// 수신되는 데이타는 UTF-8 문자셋으로 된 배열 값이다. 

// 수신 데이타 가공하는 법은  http://noe-interactive.com/demo/!/twitterapi  를 참고하자.

?>

 


** 참조

https://dev.twitter.com/apps

https://dev.twitter.com/docs/auth/oauth/single-user-with-examples


http://noe-interactive.com/demo/!/twitterapi

http://tweetpress.fr/codetwitter/api-twitter-requetes-version-1-1/


https://github.com/abraham/twitteroauth

https://github.com/abraham/twitteroauth/releases




300x250
Posted by 마스타