この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレス魔改造 オートブログ講座2 第一回目 ツイッターボット攻略 その1

というわけで、好評だったオートブログ講座の続編です。
オートブログ講座2では前回のオートブログ講座を大幅にパワーアップした内容です。もしまだ前講座を読んでいない方は前講座をひと通り読んで下さい。作業は前講座の内容を引き継ぐ場面がたくさんあるからです。

ではまず前講座で作ったツイッターの自動フォロー返しをするボットの改造からです。
ツイッターボットの作り方は色々とあるかと思いますが、Twitter APIが去年の夏頃に1.0から1.1へと変わり、仕様が大幅に変更されてしまったため、ネットで得られる情報が古くなっています。

そこで新たにTwitter API 1.1に対応したボット作りの基本を学んでいきます。
ここで目指すボットの機能としては以下の通りです。

・特定キーワードで検索してユーザーをフォロー
・フォローしてくれない片思いユーザーのリムーブ
・日本語圏外ユーザーのブロック

前作は

・ワードプレスの記事を自動的につぶやく
・ランダムに過去記事をつぶやく
・フォローされたらフォローを返す

という機能でしたが、これだと最近のTwitterは制約がシビアになったせいか、フォロワーを短期間に獲得し辛いことが分かりました。
そこで、積極的に自分からツイートを検索し、フォローをしていく機能を付けます。
しかし、普通にフォローをしていくだけだと、フォローとフォロワーの人数が極端に差が出るため、一定期間経ってもフォローしてくれない片思いのユーザーへのフォローを解除する機能を付けます。

あと結構問題なのが日本語圏以外のユーザーからのフォローです。
英語圏ならまだいいのですが、アラビア語を使う中東のユーザーはなにかしらのボットを使っているのか、一人をフォローすると瞬く間に群がります。アラビア語は解読できないのでフォローしても、されても無駄です。そこで文字コードで判別して除外する機能も付けます。

まずは「Twitter REST API v1.1」の使い方について簡単に見て行きましょう。

[browser-shot width=”600″ url=”https://dev.twitter.com/docs/api/1.1″]

▼Twitter REST API v1.1
https://dev.twitter.com/docs/api/1.1

マニュアルを見ると機能が16のカテゴリに分類されているのが分かります。
この中でメインで使う機能は3つ程度になります。

[note]Timelines(タイムライン関連)
Tweets(ツイート関連)
Search(検索関連)
Streaming(ストリーミング関連)
Direct Messages(DM関連)
Friends & Followers(フレンドとフォロワー関連)
Users(ユーザー設定関連)
Suggested Users(提案されたユーザー関連)
Favorites(お気に入り関連)
Lists(リスト関連)
Saved Searches(検索の保存関連)
Places & Geo(場所と地域関連)
Trends(トレンド関連)
Spam Reporting(スパム報告関連)
OAuth(認証関連)
Help(ヘルプ関連)[/note]

試しにタイムライン関連を見てみましょう。

▼GET statuses/user_timeline

GET statuses/user_timeline
GET statuses/user_timeline

「GET statuses/user_timeline」の項目で説明します。

各機能の項目には頭に「GET」または「POST」という文字が付いています。
これはデータを送信する形式で、HTMLのフォームを送信する「GET形式」「POST形式」と同じものを意味します。
しかし、便利なライブラリを使うので実際にはGETPOSTといった違いについては意識することはないと思います。

GETの後の「statuses/user_timeline」と書かれている文字列ですが、これはフォルダを意味します。

TwitterのAPIは以下のURLにアクセスして呼び出しています。

[note]https://api.twitter.com/1.1/[/note]

で、さらに機能ごとにフォルダで分けられています。つまり、「statuses/user_timeline」の機能は以下の場所にあります。

[note]https://api.twitter.com/1.1/statuses/user_timeline[/note]

「statuses(ステータス)」関連下の「user_timeline(ユーザーのタイムライン)」という意味です。

「statuses/user_timeline」ですが、説明が英語で分かり辛くはありますが、簡単な英語なのでGoogle翻訳に通せば大体の意味は通じます。

[note]Returns a collection of the most recent Tweets posted by the user indicated by the screen_name or user_id parameters. User timelines belonging to protected users may only be requested when the authenticated user either “owns” the timeline or is an approved follower of the owner. The timeline…

screen_nameまたはUSER_IDパラメータで示されるユーザが投稿最新のツイートのコレクションを返します。認証されたユーザーは、タイムラインを「所有」または所有者の承認されたフォロワーのいずれかであるとき、保護されたユーザーに属するユーザのタイムラインにのみ要求することができる。タイムライン…[/note]

要するに指定されたユーザーのタイムラインを表示する、という機能であることが分かります。

「GET statuses/user_timeline」にはオプションがあります。「GET statuses/user_timeline」のリンクをクリックしてみましょう。

Parameters
Parameters

「Parameters」と書かれているものがオプションです。

「GET statuses/user_timeline」には9種類のオプションがあります。

英単語からそのまま推測できるものもありますが、推測できないものについては説明を読むと分かります。
大抵は重要なオプションほど上に有り、必ずなにかしらのオプションを指定しなければなりません。

[note]user_id
screen_name
since_id
count
max_id
trim_user
exclude_replies
contributor_details
include_rts[/note]

例えば「user_id」というオプションはタイムラインを表示するユーザーのIDを意味します。これを指定しないと誰のタイムラインを表示するかが分からないためエラーとなります。
しかし、ツイッターではユーザーIDが明示的には表示されないので、スクリーンネームが一般的です。
「@taro」などとTwitterユーザーであれば、誰もがスクリーンネームを持っています。
なので「user_id」の代わりに「screen_name」を指定してもOkです。

その他のオプションの説明は省略しますが、特定のつぶやきを表示したり、つぶやき数を制限したりすることができます。

次に覚えておきたいのが「Example Values:」です。これは指定するデータの型を意味しています。
例えば、「user_id」では「Example Values: 12345」となっています。
これは「user_id」には数字だけを指定してね、という意味となります。

「screen_name」の場合は文字列なので数字だけとは限りません。
なので「Example Values: noradio」という例が示されています。

「Example Values:」には数字だけ、数字と文字だけの他に、「true」「false」というものがあります。
「true」というのはスイッチでいうところの「ON」で、「false」「OFF」と言う意味です。

例えば「include_rts」では「Example Values:」「Example Values: false」となっていますが、これはタイムラインにリツイートされたものを含めない、という意味になります。特に指定しなければリツイートがタイムラインに含まれるようになります。

指定するデータの型は大きく分けてこの3タイプなので覚えておいて下さい。

では実際にスクリプトを作って動かしてみましょう。
TwitterのAPIを使用するのに「twitteroauth」というライブラリを使うので、以前のオートブログ講座で使ったファイルを流用します。まだ講座をやっていない人は以下をチェックして下さい。

▼ワードプレス×ツイッターによる無料でできるオートブログ 第八回目 ツイッターで自動フォロー返しをしてくれるボットを作る方法
http://wp.me/p3Imhe-3ko

以前作った「auto_Follow.php」というファイルがあると思うので、同じ場所にファイル名を「twitter_test.php」としてコピーして下さい。内容を以下のようにして下さい。
因みに以下の4つのキーとトークンは自分が取得したものに書き換えて下さい。

[note]//コンシューマキー
$consumer_key             = “あなたのコンシューマキー”;
//コンシューマシークレット
$consumer_secret         = “あなたのコンシューマシークレット”;
//アクセストークン
$access_token             = “あなたのアクセストークン”;
//アクセストークンシークレット
$access_token_secret     = “あなたのアクセストークンシークレット”;[/note]

関連記事