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にブログも移動したいんだけどね~面倒くさい