”プログラミングができなくても作れるTwitter botの作り方”のボットをSearch APIからツイートを拾ってリプライするように改造してみました

プログラミングができなくても作れるTwitter botの作り方 の@phaさんのコードをお借りして少し勉強してみました。

すぐさま使えて大変読みやすいコードで感激したのですが、ドロリッチなうみたいなことをやってみたくて改造してみました。

僕の理解が正しければ、このボットはREST APIのみを使用していて、アカウント中心に動作しているようです。リプライに反応するとか、自分のタイムラインに反応するとかいうことです。

自分のフォロワーではない人たちがつぶやいた言葉に反応させるためにはSearch APIから条件を指定してツイートを集めて、これに反応させるようなので、EasyBotter.phpを拡張しました。

やっていることは、Search APIからJson形式でツイートを取得して、これをEasyBotter.phpの既存の関数に潜らせて、返信の仕組みもEasyBotter.phpと同じreply_pattern.phpを使っています。

誰かの役に立つかもしれないので、一番下にサンプルを置いておきます。

・Search APIからは最大で100件まで取得し、次のページまで取りに行きません。

使用したバージョン: EasyBotterバージョン2.04beta

SoEasyBotter.php, interrobot.php, interrobot_reply_pattern.php を追加しました。interrobot.php を bot.php と同じように使用します。

そのままだと、screen_name等メンバー変数が使えなかったので、EasyBotter.phpのメンバ変数をprivateからprotectedに変更しました。残りのファイルには手を触れていません。

バージョン2.04に上記のファイルを追加して、EasyBotter.phpに変更を加えた形で圧縮しました。満足にテストしていないので、参考程度にしてください。setting.php等はEasyBotterを使うのと同じように設定が必要です。

一般的すぎる言葉を検索する言葉に加えると、呼ばれる度に大量のリプライをばらまくことになるので気をつけてください。

 

ソースコードは各自の責任範囲で自由にお使いください。

EasyBotter2.04betaWithSearchAPI.zip

Posted in 開発・ノウハウ | Tagged | Leave a comment

Twitterの効用 4.手軽で効果的な情報発信ができる

ツイッターでは、情報発信も容易です。そして簡単なだけでなく効果が高いのです。2.情報と出会える、3.リアルタイムな情報の収集 からわかるように、ツイッターのタイムラインからHPを見てもらえることが頻繁にあります。新しい情報は短いコメントで紹介して、URLをつけてクリックしてもらいましょう。
前提として、有効なフォロワーの方をたくさん集めておく必要はありそうです。

弊社では、当初、botで定期的につぶやいてみたのですが、これは内容も含めて失敗でした。現在も試行錯誤中です。失敗も成果もいずれこのサイトで報告しますね。

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Twitterの効用 3.リアルタイムな情報が収集できる

■検索
情報を収集するためには検索ですね。検索といえば、Googleですが、Twitterの情報は、リアルタイムというのが最大の特徴ですので、Googleでは出てこない今起こった情報を見つけることができます。天気とか交通情報とか、今が知りたいのに時間差がないとニュースにならない情報は、Twitterが一番です。
■検索結果のタイムライン
日常的には、検索を保存しておいてタイムラインで確認するのがよい方法です。
Twitterからでしか得られない時間軸と情報量という2つの新しい情報が感じられると思います。これまでのニュースからは感じることが難しかった情報です。
■人間センサー人力フィルター
実はもっと簡単に情報収集できます。情報感度の高い人や、その道の有名な方をフォローしておけばいいのです。価値の高い情報ほど必ずタイムラインに引っかかります。まさに人間センサー人力フィルターといった感じです。そして驚くほど精度が高いです。
■プロフィール検索
また、特定の個人を見つけたい場合は、Twitterのプロフィール検索が便利です。メールアドレスを知らなくても話しかけることもできるので、知り合うまでの敷居がとても低いです。
■雑感
インターネットの登場で情報のサイクルが時間単位になった気がしていましたが、Twitterの登場で秒単位になった感じがします。究極だなあと感じます。

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Twitterの効用 2.欲しかった情報と出会える

Twitterをはじめて最初にすることは、興味のある人をフォローすることだと思います。
私が始めてフォローしたのは確か孫さん(@masason)です。
初めて目にしたツイートが口語口調でびっくりしました。
きっと別人だと思ったのですが、過去のツイートも見てみると本物の孫さんだとわかりました。孫さんはあるとき「Ustreamを日本語化する」とつぶやかれました。大きなニュースですが、なんと1次情報です。誰よりも早くこれほどのニュースに触れることはかつてなかった経験でした。実際にこのツイートを発信源にして、後から各メディアがニュースとして取り上げました。情報伝達の時間軸が完全に逆転したのです。
利用が進むにつれてフォローする人を増やしていきました。
マニュアル本には大体100人くらいフォローすると面白さがわかると書いてあるものが多いですが、興味のある著名な方数名でも十分欲しい情報(潜在的に欲しかった情報)との出会いがあるはずです。
こうして時々自分のタイムラインをチェックするようになると、気になるツイートがあったり、そこにあるリンクからホームページを見ることが増えていきます。そして、ふと気付きます。Twitter経由で見る情報は価値の高いものが多いということと情報が異常に早いことに。
また物事がTwittter上でリアルタイムに動いていて、自分がその現場にいるような感覚に襲われます。

これまで私たちは、欲しい情報にたどりつくには、Yahooのトップページか、メールか、googleを入り口として探すことが多かったのではないでしょうか。
Twitterをはじめると情報への新しい入り口ができます。そしてその入り口はとても魅力的です。

少し俯瞰してみると、ツイッターはインターネットの世界で初めて成功した真のプッシュ型のメディアではないでしょうか。

上記は、Twitterを数日利用して判ってくる感覚です。ここまでくれば、Twitterは手放せないツールになるんですが、残念ながらこの手前で止まっていてTwitterはよく判らないと言っている人が私の周りにはたくさんいます。

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Twitterの効用 1.思考が蓄積できる

人は日常的に、さまざまな場面で、これはという気付きがありますよね。
一瞬で忘れてしまうことも多いですが、そういった気付きをメモ感覚で気軽にUPできるのがTwitterのいいところです。
いいことを思い付いたと思ってUPしても後から読み返すとそれほどでもなかったりしますが、ある程度たまるとその点が線になって、思考が整理されます。
実際に多くの方が、Tweetをまとめてブログの記事にしているようです。多くの気付きをUPしておくことで、その後の作業がスムーズに進みます。
私は最近は写真もよくUPしています。後から見るといくつかのジャンルに分けられて通してみるとなかなか楽しいです。いつでも取り出せる思考の引き出しが増えた感覚です。 http://twitpic.com/photos/ogawa2525

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Twitter(ツイッター)に魅せられた経緯 その2

初めてアカウントを取ったのは、2010年2月15日(@ogawa2525)です。エンジン掛かるのが遅いですが、とにかくやってみようと思い立ち、アカウントを取ってみました。そして、初めてつぶやいたのは2月21日です。「Hajimete no Twitt」 と(スペルミスしてますね。汗)ツイートしています。
会社のアカウントは遅れて2010年3月15日(@interrobot)に取得してます。この頃の時間軸を見ると私があまり重要だと感じていないことがよくわかります。空いた時間で少しずつやっていこうという感じで進めていました。
しかし、Twitterに触れるに従って、いろいろな効用が見えてきました。
実に多面的で深いです。潜在的な思考が顕在化して公開され共有されているという現象が
人類の歴史上なかったうねりを生み出しているように感じました。

私の今感じているTwitterの効用は下記です。
1.思考が蓄積できる
2.欲しかった情報と出会える
3.リアルタイムな情報が収集できる
4.手軽で効果的な情報発信ができる
5.みんなの脳を借りることができる(執筆途中)
6.世の中を感じることができる(執筆途中)

以降、各項目について言及していきます。

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Twitter(ツイッター)に魅せられた経緯 その1

ツイッターがアメリカではやっているといううわさは、1年以上前に雑誌などで見聞きしていました。しかし、説明されているつぶやくとか小さいブログという意味をまったく理解できず、URLを開いても興味が持てませんでした。ツイッターに関する最初の印象はどうせはやりものでいずれ消えていくでしょうというものでした。
タイムラインを初めてきちんと見たのは、2009年の紅白歌合戦の時です。このころになると日本での情報や話題も増えてきて、ツイッターという言葉を時々耳にするようになっていました。そこでふと思い立ち、ツイッターのホームページで「紅白歌合戦」で検索してみたのです。タイムラインには大勢の人たちが気ままに短い書き込みをしていて、わいわいがやがや楽しんでいるのが伝わってきました。楽しそうだなというのがこの時の印象です。しかしこの時も、全くビジネスとの関連は意識できませんでした。

Posted in 社長の勝手コンテンツ | Tagged | Leave a comment

Search API について

 

制限:認証する必要がないので制限はIPごとにかけられて上限が公開されていない。だいたい1時間に350回ぐらいではないかと言う噂。
結果はだいたい7日以内(twitter側の都合で時々変わる)のツイートが返される。1ページに最大100ツイート返せる。pageパラメーターを使用すると最大1500ツイート取得できる。

注意点:

1.結果に含まれているto_user_idとfrom_user_idは、REST APIで使用するuser idとは別のもので混乱の原因になっています。このto_user_idと、from_user_idはユーザーがアカウントの名前を変更すると変わってしまう。なので、from_userのユーザー名から、さらにREST APIを使用してuser idを取っておく必要がある。この問題は次のバージョンで修正予定。

2.制限がIPごとなので、Google App Engine等、IPを他の人と共有するサーバーを使用してcronでボットを動かすような場合は、他の人が同じIPでSearch APIを使っていると突然制限がかかる。

3.result_typeというパラメーターが新たに追加されて、設定しないと、デフォルトのmixedになってしまい。有名なアカウントのツイートは、最新でなくても表示されることになった。最新のツイートだけが欲しい時はrecentを指定しないと、何度も同じツイートが表示される。

Posted in 開発・ノウハウ | Tagged | Leave a comment

API 使用上の注意点

全体的な注意点

・まだ早いペースで仕様が変わっているので、開発に関しては本の情報より、twitter公式のAPIのページを参照したほうが安全。 http://apiwiki.twitter.com/

・返される結果として、jsonのほうが短くて帯域を無駄にしないので、Twitter側がjsonを推奨している。Streaming APIだけでなく他のAPIにも将来は影響するかもしれないので、出来る限りjsonで開発したほうが良さそう。
(参考:http://dev.twitter.com/pages/streaming_api_concepts )
Parsing Responsesの項目
JSON is strongly encouraged over XML. JSON is more compact and we are considering XML for deprecation.

・since_idの仕様がちょっと変わっているので気をつける。

(参考:http://d.hatena.ne.jp/furyu-tei/20100124/1264342029)

Posted in 開発・ノウハウ | Tagged | Leave a comment

TwitterのAPI について

Twitter APIには3つの種類があります。
簡単に説明します。

 

1.Search API http://search.twitter.com/

概要: 条件を指定してマッチするツイートを返すAPI。Streaming APIと違って、定期的に呼ぶ必要がある。
認証: 認証しないで使う。
制限: 認証しないのでIPごとに、1時間ごとに約350回(何回までOKかは公開されてない)。
使用例: 条件にあったツイートの収集や、定期的にある単語のツイートを表示するアプリケーションの作成時に使用する。
具体例: http://twitroll.com/

 

2.REST API

概要: Twitterアカウントの管理、アカウント中心のAPI。
認証: ほとんど認証して使う。認証しない部分というのは、例えば特定のアカウントのタイムラインの表示に認証は必要ない。
制限: 認証する場合はアカウントごとに1時間に150回まで。認証しない場合はIPごとに150回。
使用例: Twitterクライアントの作成や、特定のアカウントをボットとして使う場合等。
具体例: Tween , hootsuite

 

3.Streaming API

概要: 条件を指定してマッチするツイートをどんどん返すAPI。Search APIと違って、コネクションを保持して結果がどんどん返ってくる。
認証: 認証して使う。
制限: ひとつのアカウントにつき、ひとつのラインしか開けない。ひとつのアカウントで複数開こうとすると、古いものが閉じられる。
使用例: 使えるアプリケーションのタイプとしては、Search APIと同じ物が考えられる。
具体例: twitterfall , TweetBubbles

Posted in 開発・ノウハウ | Leave a comment