はじめまして。
日本大学 生産工学部 数理情報工学科の金澤眞大と申します。
少しだけ自己紹介を致します。情報系の大学に通っています。
2011年に初めて自分のパソコンを持ったアマチュアなエンジニア志望の大学生です。
2年前までパソコンで「?」の入力の仕方も知らなかったくらいです。
そんなパソコンにド素人だった私の開発奮闘の記録をしていきます。
ドットインストールに合わせた、Twitterのbot作成
さて、初めての今回はPHPを使い、Twitterのbotを作成していきます。
PHPの基礎トレーニングに調度良さそう!2~3日で簡単に出来そう!
という安直な理由で始めました。
今回は、ドットインストールの講座を軸に作成していきますが、各セクションで何を行ったのか、個人的にわかりにくかったり、詰まったりした箇所を補足して行こうと思います。
#01 ツイッターボットを作ろう!
まずは、Twitterでbot用のアカウントを作成して、twitteroauthをダウンロードしておきます。
#02 ツイッターアプリを登録する
マイアプリケーション登録をします。
ドットインストールの講座で、どうやってアプリケーション登録をするのだろう?
どこのリンクを押すのだろう?と少し迷った場合は、夏研ブログを参考にするとよいです。
ドットインストールでは説明がなかったのですが、先ほど作成しておいた
bot用のアカウントで、サイト右上からログインしておくことに注意が必要です。
あと、Websiteを記入する欄は空欄のままではエラーが出てしまうようなので、自分のホームページのURLなどを入れてみましょう。
#05 ツイッターのAPIを利用する
ドットインストールの指示に従っていきます。
APIに正しくアクセスできているかのテストを実行すると、エラーが発生する場合があります(私の場合は、「twitteroauth.phpの195行目でエラーが発生しました」と表示されました)。
利用しているレンタルサーバーによっては、エラーが出てしまう場合があるようです。
その場合は、XAMPPのローカルサーバー上でテストを実行してみましょう。
#07 ボットを使ってつぶやこう、#08 エラーの修正をする
手順通りに進めていけばつぶやきに成功できるはずです。
#09 内容を時間帯によって変更する
「ハッシュタグ」など、知らない用語が出てきたので、個別に確認していきます。
ハッシュタグ(hashtag)とは?
ツイナビより引用
#記号と、半角英数字で構成される文字列のことを Twitter上ではハッシュタグと呼ぶ。 発言内に「#○○」と入れて投稿すると、その記号つきの発言が検索画面などで 一覧できるようになり、同じイベントの参加者や、同じ経験、同じ興味を持つ人の さまざまな意見が閲覧しやすくなる。ハッシュタグは Twitter ユーザーが自発的に 使用するようになったルールであり、ハッシュタグを使用するに当たっては Twitter Inc. への申請や登録は必要ない。 #○○の前後に、半角スペースを入れるのを忘れずに!【例】#oyatsu → 自分が食べたおやつについて皆で共有
#10 定期的にプログラムを実行する
ここでも、利用しているレンタルサーバーによっては、コマンドラインにサーバーからアクセスできない場合があります。
必要に応じて、おくみん公式ブログを参照してみるとよいと思います。
- 補足 2種類のメソッド
参考:おくみん公式ブログより
GETメソッド…TL閲覧といった情報を取得するタイプのAPI
POSTメソッド…投稿やお気に入り登録といった、情報を追加したり書き換えるタイプのAPI
ランダムで文字列をツイートする
参考:おくみんの公式ブログより
ランダムツイートを見よう見まねで実装してみましょう。
- ソースコード
<?php // ファイルの読み込み----------------------------------- require_once('twitteroauth/twitteroauth.php'); require_once('config.php'); // -------------------------------------------------------- // 「TwitterOAuth」クラスのインスタンスを作成--------------- $conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); // --------------------------------------------------------------- // OAuth認証が行われ、TwitterOAuthクラスにある、APIを呼び出す関数が使えるようになる // ランダムで表示する配列 $params = array( "ウホウホ", "ウホッ", "ウホー!!" ); // 「$post_comments」をシャッフル shuffle($params); // ツイートを投稿するAPI、「statuses/update」を実行 // 投稿文が重複している場合、ループする while(count($params)){ $result = $conn->post('statuses/update', array('status' => array_shift($params))); if(!isset($result->error) || $result->error != 'Status is a duplicate.') break; } // 「statuses/update」の実行結果を出力 if(isset($result->error)) echo $result->error; else var_dump($result);
編集後記
終わってみたら、「なんだ、大したことなかったじゃん!」という達成感も得られました
が、実はドットインストールの「#05 ツイッターのAPIを利用する」の段階で実行で
きずに、露頭に迷ってかなり苦労しました。
本当は投げ出したくもなりましたが、こうやって技術ブログに文字として記録をおこしたいという責任感で最後まで諦めずに取り組むことができました。
すごく有意義な時間でした。これからも定期的に技術ブログを書いて行きたいと思います。
今後ともどうぞよろしくお願いします。