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内のVMwarepearがインストールされていなかったので、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/