Twitter OAuth 1.1の利用法(メモ)

Twitter APIが新しくなってから放置していて忘れてしまったのでメモ。
他色々検索すると例が出てくるけど、もうちとシンプルにならないものかと思いまして。 PEAR::OAuthとPEAR::JSONを使ってます。 phpのjson関数が使えればよかったのですけれど、WebArenaのPHPには実装されていませんでしたので。
movable typeにSyntaxHighlighterプラグイン入れることが出来るみたいでトライしてみたけど、MTのヴァージョンが古いから?かなんかうまくいかなかった。そんな所の検証も込めて
TwitterでConsumer KeyとSecretを取得して、以下のソースをコピペって設定すれば、簡単にTwitter APIが利用できるようになるはず......多分(^^;;;
<?php
// PEAR::OAuthとPEAR:;JSONを利用したTwitter OAuth実行例
//
// Twitter My Application作成ページ: https://dev.twitter.com/apps
// Twitter REST API 1.1: https://dev.twitter.com/docs/api/1.1
require_once('HTTP/OAuth/Consumer.php');
require_once('Services/JSON.php');

// twitterで作成されたconsumer_key
$consumer_key='xxxxxxxxxxxxxxxxxxx';
// twitterで作成されたconsumer_secret
$consumer_secret='XXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$get_access_token_url='https://api.twitter.com/oauth/access_token';
$request_token_url='https://api.twitter.com/oauth/request_token';
$authorize_url='https://api.twitter.com/oauth/authorize';
// 自分自身のURLを設定
$callback_url='yyyyyyyyyyyyyyyyyyyyy';

// セッション開始
session_start();
// HTTP OAuthコンシューマを生成
$consumer=new HTTP_OAuth_Consumer($consumer_key,$consumer_secret);
// SSL通信を可能にする
$http_request=new HTTP_Request2();
$http_request->setConfig("ssl_verify_peer",FALSE);
$consumer_request=new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);
// access_tokenとaccess_token_secretを取得してないなら......
if((isset($_SESSION['access_token'])!=TRUE)||
	(isset($_SESSION['access_token_secret'])!=TRUE)){
	if(isset($_GET['oauth_verifier'])==TRUE){
	// oauth_verifierが貰えてたら、access_tokenとaccess_token_secretを取得しセッションに保存
		$consumer->setToken($_SESSION['request_token']);
		$consumer->setTokenSecret($_SESSION['request_token_secret']);
		$consumer->getAccessToken($get_access_token_url,$_GET['oauth_verifier']);
		$_SESSION['access_token']=$consumer->getToken();
		$_SESSION['access_token_secret']=$consumer->getTokenSecret();
	}else{
	// oauth_verifyが貰えてなければ、twitter認証ページに遷移しoauth_verifierを貰う
		$consumer->getRequestToken($request_token_url,
			$callback_url);
		$_SESSION['request_token']=$consumer->getToken();
		$_SESSION['request_token_secret']=$consumer->getTokenSecret();
		$auth_url=$consumer->getAuthorizeUrl($authorize_url);
		header("Location: ".$auth_url);
	}
}
// access_tokenとaccess_token_secretを取得済み(認証済みAPIが使える状態)
// 後はご自由に......
// 例 : Account/VerifyCredentialでスクリーン名を取得
// 要求に先立ってもらったaccess_tokenとaccess_token_secretを設定
$consumer->setToken($_SESSION['access_token']);
$consumer->setTokenSecret($_SESSION['access_token_secret']);
$response=$consumer->sendRequest("https://api.twitter.com/1.1/account/verify_credentials.json",
	array(),"GET"); // 第2引数にパラメータを設定、この関数では空array(NULLではダメ)
if($response){
// PEAR::Service_JSONを利用してJSONをデコード (WebArenaのPHPではjson関数が使えなかったから(´・ω・`)
	$json=new Services_JSON();
	if($json!=null){
	// デコードするのはBODY部分:ここ大事
		$resultData=$json->decode($response->getBody());
		if($resultData){
			echo $resultData->screen_name;
		}
	}
}
?>
そんなこんなで過去作ったものをぼちぼち再起動できるように修正中
やっぱなんかSyntaxHighlighter効いてないや
MovableTypeからWordPressにブログも移動したいんだけどね~面倒くさい

トラックバック(0)

このブログ記事を参照しているブログ一覧: Twitter OAuth 1.1の利用法(メモ)

このブログ記事に対するトラックバックURL: http://norikawa.net/mtmng/mt-tb.cgi/265

コメントする

カレンダー

<   2013年9月   >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

今度の予定

2014/01/03-04 大洗
2014/02/15 茅原実里FCイベント

ウェブページ

月別 アーカイブ

Powered by Movable Type 4.1

このブログ記事について

このページは、Norikawaが2013年9月13日 14:47に書いたブログ記事です。

ひとつ前のブログ記事は「9月12日のツイート」です。

次のブログ記事は「9月13日のツイート」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

全国電力使用状況

旧旧ページ跡地