Services_Twitter_Timeを作成しました。
Twitterの"2 minutes ago"とか"10 days ago"とかの計算を簡単にしてしまおうというライブラリです。
http://openpear.org/package/Services_Twitter_Time
全然デバッグしていないので、報告お待ちしております。
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/
phpを使用してOAuthを利用し、TwitterAPIを実行する方法
物凄く久しぶりの更新。
週一位で更新する頻度に戻したい。
最近open socialやtwitter連携サービス等に触れる機会を頂いてそれをちょこちょことメモしようと思いました。
そこで、phpを使用してOAuthを利用し、TwitterAPIを実行する方法を書きました。
環境
OS:CentOS5.4
PHP:5.2.1
phpを使用してOAuthを利用し、TwitterAPIを実行する方法
下記のサイトを参考にphpからOAuthを利用する方法を調査しました。
http://www.sdn-project.net/labo/oauth.html
簡単に書くと、単にライブラリを使用するだけなんですけどね。
先ほどのサイトに紹介されている下記のライブラリをサーバーにダウンロードします。
http://github.com/abraham/twitteroauth
ダウンロード・解凍後、index.phpにアクセスする事で簡単にOAuthを利用する事が出来ます。
しかし、対象ユーザーのトークンを利用して呟かしたいとかだと、ダウンロードだけでは出来ないので簡単に下に列挙。
(コールバックで返ってきた後の話です)
ステータスの更新(ツイート)
<?php require_once('twitteroauth/twitteroauth.php'); $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); //投稿 $parameters = array('status' => 'OAuthからの投稿だよ!'); $connection->post('statuses/update', $parameters);
フォロー
<?php require_once('twitteroauth/twitteroauth.php'); $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); //フォロー $method = 'friendships/create/93915746'; $connection->post($method);
他にも出来る事があるのですが、詳しくはライブラリの中にあるtest.phpの中を覗くと出来る事が列挙されているという親切な設計。
まとめ
phpでOAuthは全然難しくない!
認証システムを外部で持てるのは、作成側もユーザーも便利なので、どんどんその様なサイトが増えると良いなと思いました。
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/
[ついったー部Friends登録ご自由]に掲載されているアカウントに、自動でフォロー登録するphpまとめ
下記のphpで自動でフォロー登録出来ます。
<?php require_once 'Services/Twitter.php'; require_once 'HTTP/Request.php'; $user = 'ユーザー名'; $pass = 'パスワード'; //ついったー部Friends登録ご自由にのサイトURL $url = 'http://twitter.g.hatena.ne.jp/keyword/Friends%e7%99%bb%e9%8c%b2%e3%81%94%e8%87%aa%e7%94%b1%e3%81%ab%20'; $request = &new HTTP_Request(); $request->setURL($url); $result = $request->sendRequest(); if (!PEAR::isError($result)) { //リンクから抽出する正規表現 preg_match_all('/<tr><td><a\shref="http:\/\/twitter.com\/([a-zA-Z0-9_]+)"\starget="_blank">/',$request->getResponseBody(),$matches); $twitter_users = array_unique($matches[1]); $st =& new Services_Twitter($user, $pass); //アプリケーションの名前を設定 $st->setAppName('camelmasa_sample'); //アプリケーションのバージョンの設定 $st->setAppVersion('1.0'); //フォローしているユーザーを取得する。 $friends = $st->getFriends($id = null); foreach(json_decode($friends) as $friend){ $followers[] = $friend->screen_name; } foreach($twitter_users as $user){ if(!in_array($user,$followers)){ //友人を登録する $st->addFriend($user); } } } ?>
API制限の調整等必要かも。
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/
[ついったー部Friends登録ご自由]に掲載されているアカウントに、自動でフォロー登録するphpを構築しました。
家のPC内のVMwareにpearがインストールされていなかったので、pearをインストールしました。
yum install php-pear pear upgrade PEAR
その後下記のサイト参考に、Services_Twitterをインストールします。
http://labs.transrain.net/products/services_twitter/
まず、メッセージを送信すると思われるsetUpdate関数を使ってみました。
<?php require_once "Services/Twitter.php"; $user = 'ユーザー名'; $pass = 'パスワード'; $st =& new Services_Twitter($user, $pass); //発言 $st -> setUpdate('テスト'); ?>
でtwitterのアカウントcamelmasaが発言出来ました。
アプリケーション名、バージョン等も通知出来るようで下記の方法でも発言してみました。
<?php require_once "Services/Twitter.php"; $user = 'ユーザー名'; $pass = 'パスワード'; $st =& new Services_Twitter($user, $pass); //アプリケーションの名前を設定 $st->setAppName('camelmasa_sample'); //アプリケーションのバージョンの設定 $st->setAppVersion('1.0'); //発言 $st -> setUpdate('テスト2'); ?>
さて本題です。
[ついったー部Friends登録ご自由]の情報を取得する為httpで通信する必要があります。
ですので、pearのHTTP_Requestをインストールします。
pear install HTTP_Request
先程作成したプログラムと組み合わせます。
<?php require_once 'Services/Twitter.php'; require_once 'HTTP/Request.php'; $user = 'ユーザー名'; $pass = 'パスワード'; //ついったー部Friends登録ご自由にのサイトURL $url = 'http://twitter.g.hatena.ne.jp/keyword/Friends%e7%99%bb%e9%8c%b2%e3%81%94%e8%87%aa%e7%94%b1%e3%81%ab%20'; $request = &new HTTP_Request(); $request->setURL($url); $result = $request->sendRequest(); if (!PEAR::isError($result)) { //リンクから抽出する正規表現 preg_match_all('/<tr><td><a\shref="http:\/\/twitter.com\/([a-zA-Z0-9]+)"\starget="_blank">/',$request->getResponseBody(),$matches); $twitter_users = array_unique($matches[1]); $st =& new Services_Twitter($user, $pass); //アプリケーションの名前を設定 $st->setAppName('camelmasa_sample'); //アプリケーションのバージョンの設定 $st->setAppVersion('1.0'); foreach($twitter_users as $user){ //フォロー登録する $st -> addFriend($user); } } ?>
友人を登録する前にフォロー登録している人を取得して、照らし合わせる必要がありますね…。
今日はここまでです。
追記
camelmasaのtwitterです。
http://twitter.com/camelmasa
jsonデータの扱いをした事が無い…。
どうやるのだろうか…。
正規表現の部分がおかしいっぽい。
ハイフンとか入れ忘れた!
参照URL
http://twitter.com/
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/