<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Screw-Axis &#187; Tuitter</title>
	<atom:link href="http://screw-axis.com/category/tuitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://screw-axis.com</link>
	<description>flexible, elastic and principled.</description>
	<lastBuildDate>Fri, 04 May 2012 16:52:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>[Tuitter] Twitterのプロフィール設定変更機能を追加</title>
		<link>http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/</link>
		<comments>http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 14:29:51 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Tuitter]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=803</guid>
		<description><![CDATA[Tuitterに要望をいただき、プロフィール設定の変更機能を追加しました。 Tuitter_Account 名前や所在地などの設定、アイコン、プロフィール画面のデザイン変更などをプログラムから行うことが出来ます。 Twi [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2010/03/twitter_prof.jpg" alt="" title="twitter profile" width="240" height="160" class="alignright size-full wp-image-806" style="margin-left: 10px;" />Tuitterに要望をいただき、プロフィール設定の変更機能を追加しました。</p>
<p><a href="http://dev.screw-axis.com/doc/tuitter/ja/ref/Tuitter_Account/">Tuitter_Account</a></p>
<p>名前や所在地などの設定、アイコン、プロフィール画面のデザイン変更などをプログラムから行うことが出来ます。<br />
<span id="more-803"></span><br />
Twitter APIでは、特にアイコンや背景画像などのイメージを変更するのにマルチパート・フォーマットのPOSTを必要とするので、PHPから行うのは少し手間です。TuitterではHTTP通信に自前のモジュールを使っているのですが、そこに multipart の機能を追加して実装しました。OAuthの方にも対応させています。</p>
<p>プロフィール情報を変えられるのは、Tuitterオブジェクト作成時に認証しているユーザのものだけです。<br />
まず、以下の例ではベーシック認証を用いて、ユーザの所在地を変更させています。</p>
<pre name="code" class="php">
$t = new Tuitter($user, $pass);
$a = $t->getAccount();
$a->updateProf(array('location'=>'沖縄'));
</pre>
<p>次の例は、アイコンを更新しています。アイコンは、PNGフォーマットであると仮定。認証はOAuth。画像を更新する場合、URLやパスなどの所在を渡すのではなく、あくまで画像データそのものを渡すことに注意して下さい。</p>
<pre name="code" class="php">
$t = new TuitterOAuth(
     $consKey, $consSec, $acKey, $acSec);
$a = $t->getAccount();
$img = file_get_contents('/path/to/img');
$a->updateProfImage(
    $img, 'icon.png', 'image/png');
</pre>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Tuitter] OAuth認証機能を追加</title>
		<link>http://screw-axis.com/2010/03/17/tuitter-oauth/</link>
		<comments>http://screw-axis.com/2010/03/17/tuitter-oauth/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 08:20:38 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[TuiBotter]]></category>
		<category><![CDATA[Tuitter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=791</guid>
		<description><![CDATA[少し手が空いたので、以前より要望のあった Tuitter/TuiBotter の OAuth 対応をやってみました。 TuitterをOAuthで使う TuiBotter環境設定 あまり難しく考えないで、サクッと。おかげ [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
<li><a href='http://screw-axis.com/2009/12/28/tuibotter/' rel='bookmark' title='[TuiBotter] Twitterボット専用PHPフレームワーク'>[TuiBotter] Twitterボット専用PHPフレームワーク</a></li>
<li><a href='http://screw-axis.com/2009/12/18/tuitter/' rel='bookmark' title='[Tuitter] オブジェクト指向型Twitterクライアント'>[Tuitter] オブジェクト指向型Twitterクライアント</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://screw-axis.com/wp-content/uploads/2010/03/oauth.jpg"><img src="http://screw-axis.com/wp-content/uploads/2010/03/oauth.jpg" alt="" title="OAuth" width="240" height="160" class="alignright size-full wp-image-792" /></a>少し手が空いたので、以前より要望のあった Tuitter/TuiBotter の OAuth 対応をやってみました。</p>
<p><a href="http://dev.screw-axis.com/doc/tuitter/ja/tutorial/oauth/">TuitterをOAuthで使う</a><br />
<a href="http://dev.screw-axis.com/doc/tuibotter/ja/tutorial/setting-environment/">TuiBotter環境設定</a></p>
<p>あまり難しく考えないで、サクッと。おかげで外部ライブラリが結構な環境依存になってしまいましたが。<br />
<span id="more-791"></span><br />
まずOAuthクライアントですが、自作するのも手間だったのでPECLのOAuthを使うようにしています。<br />
最初は<a href="http://github.com/abraham/twitteroauth">twitteroauth</a>など配置するだけのライブラリを使おうかとも思ったのですが、いずれにしろ libcurl が必要ですし、ライブラリの場所を指定する手間も発生します。おまけに PECL/oauth を入れると OAuthException の定義が干渉しあって twitteroauth は動かなくなってしまうことが判明したので、思い切ってPECLのみの対応で割り切りました。</p>
<p>実装は単純で、従来の Tuitter クラスを継承して、新たに TuitterOAuth というクラスを作ります。コンストラクタの引数だけが異なりますが、インスタンス化してしまえば以前と全く同様に使えるという寸法です。<br />
つまり、以下のようなコードがあったとすると</p>
<pre name="code" class="php">
$tuitter = new Tuitter($user, $pass);
$tuitter->sendMessage("Hellow");
$user = $tuitter->getUser('nao58');
    :
</pre>
<p>最初のインスタンス作成部分を修正するだけでOAuth対応になります。</p>
<pre name="code" class="php">
$tuitter = new TuitterOAuth(
     $consKey, $consSec, $acKey, $acSec);
$tuitter->sendMessage("Hellow");
$user = $tuitter->getUser('nao58');
    :
</pre>
<p>TuiBotter側に至っては、INIファイルの記述を書き換えるだけで対応完了です。</p>
<p>ただ、ベーシック認証に比べると複雑なことをやっているため、動作がちょっと重くなったような&#8230;ま、ここはトレードオフとしてください。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
<li><a href='http://screw-axis.com/2009/12/28/tuibotter/' rel='bookmark' title='[TuiBotter] Twitterボット専用PHPフレームワーク'>[TuiBotter] Twitterボット専用PHPフレームワーク</a></li>
<li><a href='http://screw-axis.com/2009/12/18/tuitter/' rel='bookmark' title='[Tuitter] オブジェクト指向型Twitterクライアント'>[Tuitter] オブジェクト指向型Twitterクライアント</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2010/03/17/tuitter-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[TuiBotter] Twitterボット専用PHPフレームワーク</title>
		<link>http://screw-axis.com/2009/12/28/tuibotter/</link>
		<comments>http://screw-axis.com/2009/12/28/tuibotter/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 02:30:34 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[TuiBotter]]></category>
		<category><![CDATA[Tuitter]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=758</guid>
		<description><![CDATA[というわけで、Twitterボット専用フレームワークです。 TuiBotter &#8211; Object-oriented PHP framework for Twitter-Bot 最大の特徴は、イベントドリブンで [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
<li><a href='http://screw-axis.com/2009/12/18/tuitter/' rel='bookmark' title='[Tuitter] オブジェクト指向型Twitterクライアント'>[Tuitter] オブジェクト指向型Twitterクライアント</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://screw-axis.com/wp-content/uploads/2009/12/tuibotter.jpg"><img src="http://screw-axis.com/wp-content/uploads/2009/12/tuibotter.jpg" alt="" title="TuiBotter" width="240" height="160" class="alignright size-full wp-image-759" style="margin-left: 10px;" /></a><a href="http://screw-axis.com/2009/12/18/tuitter/">というわけ</a>で、Twitterボット専用フレームワークです。</p>
<p><a href="http://dev.screw-axis.com/doc/tuibotter/">TuiBotter &#8211; Object-oriented PHP framework for Twitter-Bot</a></p>
<p>最大の特徴は、イベントドリブンでボットが書けること。例えば「フォローされたら、フォローバックする」というコードを書くには、「フォローされた」というイベントに渡ってくる「フォロワー」オブジェクトに対して、「フォローする」というメソッドを投げるだけで実装できます。<br />
実際にコード例を見ながら、簡単に説明します。<br />
<span id="more-758"></span></p>
<pre name="code" class="php">
class GreetingBot implements TuiBotter_Event_BeFollowed
{
  public function eventBeFollowed(Tuitter_User $user, Tuitter $tuitter)
  {
    if(!$user->isFollowing()){
      $user->follow();
      $user->sendDM('フォローありがとう!');
    }
  }
}
</pre>
<p>基本的には、このBehaviourという「振る舞い」をあらわすクラスを作ることが、そのままボットの人格を作ることになります。</p>
<p>1行目: ボットの名前(GreetingBot)と、必要なイベント(TuiBotter_Event_BeFollowed)<br />
3行目: 「フォローされた」イベント<br />
5行目: フォローしてきたユーザを、こちらから既にフォローしていなかったら&#8230;<br />
6行目: フォローする<br />
7行目: DMを送る</p>
<p>これだけで完了です。</p>
<p><a href="http://dev.screw-axis.com/doc/tuibotter/ja/ref/TuiBotter_Events/">イベント</a>は他にも「TLが更新された」「自分が言及された」「自分の発言がRTされた」など種々あり、これらを自由に組み合わせることでボットの人格を比較的容易に形成できます。</p>
<p>動作するのは、PHP5以上。パースにはXMLを用いましたので、json_decodeが含まれていなくても動作します。<br />
ただし、将来的に検索モジュールを追加した場合、必要になるかもしれません。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
<li><a href='http://screw-axis.com/2009/12/18/tuitter/' rel='bookmark' title='[Tuitter] オブジェクト指向型Twitterクライアント'>[Tuitter] オブジェクト指向型Twitterクライアント</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2009/12/28/tuibotter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Tuitter] オブジェクト指向型Twitterクライアント</title>
		<link>http://screw-axis.com/2009/12/18/tuitter/</link>
		<comments>http://screw-axis.com/2009/12/18/tuitter/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:02:27 +0000</pubDate>
		<dc:creator>nao58</dc:creator>
				<category><![CDATA[Tuitter]]></category>

		<guid isPermaLink="false">http://screw-axis.com/?p=750</guid>
		<description><![CDATA[最近「Twitterのボットを作りたいんだけど」という相談を何度か受けました。 そういえばTwitterクライアントはあっても、ボット用のフレームワークって無いなと思ったので、今回作ってみました。 で、ボット用フレームワ [...]
Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://screw-axis.com/wp-content/uploads/2009/12/tui_bird.jpg" alt="Tui bird" title="Tui bird" width="240" height="160" class="alignright size-full wp-image-751" style="margin-left: 10px;" />最近「Twitterのボットを作りたいんだけど」という相談を何度か受けました。<br />
そういえばTwitterクライアントはあっても、ボット用のフレームワークって無いなと思ったので、今回作ってみました。</p>
<p>で、ボット用フレームワークを作るにあたって結局はクライントライブラリが必要なのですが、どうもAPIコールを媒してくれるだけの手続き型ライブラリが多くてシックリ来ない。というわけで、クライアントライブラリの作成まで遡ってしまったのが、この「Tuitter」です。<br />
<span id="more-750"></span><br />
既にボット用フレームワークも完成しているのですが、テストとドキュメンテーションがまだで、とりあえずライブラリ単体でのリリース。<br />
詳細は、次のドキュメントページを見てください。</p>
<p><a href="http://dev.screw-axis.com/doc/tuitter/">Tuitter &#8211; Object oriented Twitter client for PHP5</a></p>
<p>ちなみに、いかにもタイポのようでダサいライブラリ名ですが、ニュージーランドに住んでいた頃によく近所で見かけた「Tui」という鳥の名前からつけました。<br />
黒くてギャーギャーとやかましく啼く鳥で、胸のあたりだけ白いのが特徴。ちょうどオールブラックスのユニフォームのようでもあって、ちょうどいいかなと。(何が?)<br />
オークランドには同名のビールもあり、国鳥ともいえるほどポピュラーな鳥です。</p>
<p>フレームワークの方も、近日中に公開予定。<br />
気づいた点などあれば、指摘いただけると幸いです。</p>
<p>Related posts:<ol>
<li><a href='http://screw-axis.com/2010/03/17/tuitter-oauth/' rel='bookmark' title='[Tuitter] OAuth認証機能を追加'>[Tuitter] OAuth認証機能を追加</a></li>
<li><a href='http://screw-axis.com/2010/03/29/tuitter-twitter-profile-update/' rel='bookmark' title='[Tuitter] Twitterのプロフィール設定変更機能を追加'>[Tuitter] Twitterのプロフィール設定変更機能を追加</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://screw-axis.com/2009/12/18/tuitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

