誰でもできるTwitter Botの作り方―人気キャラにつぶやかせる
- 作者: 鏑家経済研究所
- 出版社/メーカー: イーグルパブリシング
- 発売日: 2010/07/23
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 569回
- この商品を含むブログ (15件) を見る
評価:★★★☆☆
以下、メモ
========
Twitterでは「3人以上の会話・議論」が難しい
(中略)
人数が多くなると、全員が全員をフォローするのが難しくなる
途中から議論に参入してくる人もどんどん現れる
↓
人によって発言力(声の大きさ)が異なる
「似ているが微妙に異なる話題」が、あちこちで盛り上がる
どんどんテーマが分散していく
途中から議論に参入した人は、これまでの議論の経緯を追うのが難しいTwitterは、しょせん独り言のためのメディア
会話のためのメディアではない!p.13
Twitterにはこのほか、リツイート(RT:他人の発言を、自分をフォローしている人たちに対して、晒しあげる機能)というしくみもあるのですが、ここで重要なのは、
タイムラインに表示される情報はユーザごとにまったく異なる
という点です。これがTwitterを使ったコミュニケーションを難しくしているポイントなのです。
つまり、Twitter以外のほとんどのコミュニケーションサービスでは、最低でも「他の人が見ているものと自分が見ているものが同じ」という前提があるのです。これは、チャットだろうと掲示板だろうとブログだろうと、みな同じです。ところがTwitterは、基本的には情報が一方通行です。フォローすれば相手の情報は見えますが、相手が自分をフォローしていなければ、こちらの情報は相手に見えていません。(わざわざ見に来てくれれば見れますが)
すると、自分から見えているものが、他の人にも見えているとは限らないという状態になります。こうなると、一般には会話が成立しません。
もちろん、2人だけで会話するならTwitterでも可能です。お互いにフォローしていれば、お互いに同じもの(情報)が視えるからです。(フォローしていなかったとしても、言及(@)を使って話をすれば、絵話は成立します)
ところが、3人以上の集団になると「自分からみえているAさんとBさんが、互いに見えているかどうか分からない」という状態のほうが普通になるのです。これではまともな会話が成立しません。多人数が参加する会話をきちんと成立させるためには、「会話の参加者全員が、お互いにフォローしあっている状態」を、(会話に先立って)構築する必要があるでしょう。これは参加者が少人数であれば可能でしょうが、参加者が増えれば増えるほど、難しくなっていきます。
けっきょくTwitterは「みんなで会話する場」や「議論の場」として使うには、まったく向いていないのです。
ユーザのみんなが、それぞれ独り言をつぶやきあっている状況にあるーこれがTwitterの姿なのです。p.44
ちなみに本書では、Rubyというプログラミング言語を使って、Botの作り方を説明しています。数あるプログラミング言語の中で特にRubyをとりあげた理由は、いくつかあります。
- プログラムを作るまでの準備が簡単で、比較的お手軽に使える
- 短いプログラムでも、わりと高度な作業指示ができる
- パソコンの種類(OSの種類)を問わずに使える
- 日本語の資料が多く出回っているので、独学でも習得しやすい
p.52
● TwitterBotは、プログラミング入門に最適な題材
「TwitterBotを作るにはどのプログラミング言語が向いていますか?」と言われると、「なんでもいい」が答えになります。
ではここで、「プログラミング言語を習得するには、何をするところから始めればいいですか?」と聞かれれば、その答えはハッキリ決まっています。TwitterBotを作るところから始めましょう!!
それ以外にありえません!!選択の余地は無いです。断言できます。なぜ、TwitterBot作りから始めるといいのか?「初心者でもとっつきやすい題材である」という理由も大きいのですが、最大の理由は
結果を自慢しやすい。
このシンプルなひと言につきます。
P.52
- Ruby Installer を使って、Rubyをインストールする http://rubyinstaller.org/downloads/
- Twitter用ライブラリをインストールする (コマンドプロンプトで gem install twitter_oauth )
p.58-65
(前略)
特にRubyの場合は大きく分けて「1.9.x」と「1.8.x」の2つのバージョン体系が存在します。そして、この両者はまったくの別物だと考えてください。「Ruby1.9.x」は、単純に「Ruby1.8.x」の次のバージョンだ―というわけではないのです。むしろ、「まったく違う2つのプログラミング言語」として扱ってもよいほどです。
「Ruby1.9.x」は、先進的で新しい昨日を取り入れていることが特徴です。「Ruby1.8.x」は、長いあいだ使用されてきた実績に裏付けされた「安定性」が特徴です。
この本では「Ruby1.8.7」をつかって解説しています。
p.63
●プログラムが動かないときのチェックポイント
- プログラムにミスが無いか?
- コマンドの実行方法が間違っていないか?(-Ksを付けましたか?)
- プログラムを保存した場所(フォルダ)が間違っていないか?
- Twitter自体が落ちていないか?(いわゆる「クジラ」が飛んでいないか?)
- ネットワークは正常か?(Webブラウザで他のサイトにつながるか?)
- Ruby本体やライブラリ側のバグではないか?(詳細はp.70参照)
●プログラム自体が間違っているとき、ありがちなケアレスミスとチェックポイント
- 英語の大文字と小文字を間違えていないか?
- 「小文字のL」と「数字の1」を間違えていないか?
- 「:(コロン)」と「;(セミコロン)」を間違えていないか?
- 「.(ピリオド)」と「,(カンマ)」を間違えていないか?
- 半角で書くべきところを全角で書いていないか?
- 綴りにミスがないか?
- 例えば、クライアントは「client」です。
- カッコの対応は間違っていないか?
- カッコの中に括弧が入っているとき、括弧の数が合わないことがあります。「{」の後に「]」で閉じてしまうことがあります。(Shiftキーの押し間違いなどで、しばしば間違います)
p.69
●Bot専用「ここまで読んだ」機能
このような迷惑な事態を防ぐために、「お返事Bot」は、「タイムラインをどこまで読んだのか」という情報を覚えておく必要があります。
そのためには、「Botが起動するたびにココまで読んだと発言しておく」という方法が考えられます。Botはタイムラインを読むことができるので、タイムライン上に「過去の自己の発言(ココまで読んだ)」があれば「それより過去に遡ってタイムラインを読む必要はない」と分かるのです。
これはなかなか良いアイデアなのですが・・・・Botがなんどもなんども「ここまで読んだ」と発言してしまうと、それを見るフォロワーは興ざめでしょう。
そこで、ここに紹介する「お返事Bot」はタイムラインに見える形で発言するのではなく、「自分宛のダイレクトメッセージを出す」という方法を使っています。未来の自分に宛ててダイレクトメッセージを出せば、人間のフォローワーたちには気づかれません。未来の自分宛にコッソリ、「ここまで読んだ」という情報を伝えられるのです。
p.123
DMをセッション変数のように使うアイデア
(中略)
ひとつ注意点としては、ダイレクトメッセージが来るたびにメールでお知らせが来る設定になっていると、かなり鬱陶しい事態になります。あらかじめ、メールが来ないように設定しておきましょう。Twitterの「設定」ページの中の「お知らせ機能」をクリックすると、メール通知の設定を変更できます。
p.127
ここまで読んだみなさんが、今後TwitterBotを開発・改良していくにあたって、目指す方向性は、おそらく3つほど考えられるでしょう。
●情報提供型Bot
ネット上のブログやニュースサイトの情報を収集し、Twitterでそれらの情報をつぶやくタイプのBotです。この種のBotを作るためには、Twitter以外のサイトにアクセスできるプログラムを作る必要があるため、作者にはある程度のプログラミング技術・知識が要求されます。
この種のBotであれば、発言に「人間らしさ」はいっさい必要ありません。むしろ、速報性や正確性が重視されるでしょう。あらゆるジャンルのニュースを集めてつぶやくよりも、特定の分野に絞ってつぶやく―たとえば「iPhone最新アプリ情報」「サッカーの試合結果速報」「最新アニメ情報」など―もののほうが、他人に喜ばれるでしょう。こうした情報提供型Botのプログラムを具体的にどうやって作ればいいのか?―というテーマについては、この本で解説するレベルを大きく超えてしまうため、詳しくは述べません。ネットから自動的に情報を収集する方法に興味があれば、「Ruby」+「クローリング」または「RSS」というったキーワードで検索してみるといいかもしれません。
p.132
こんな語りかけ口調でやさしく解説してくれてたのに、リファレンス紹介欄のあと、サヨナラのあいさつもなく、ぱったりと終わってしまうところが、なんか悲しく感じました。