誰もが一度は思うことがあるのではないか?もっと早く情報を入手していればと!
今回は、GoogleニュースのRSSをRSSパーサーを使って取得し、それを元にRSSが更新されたタイミングで更新内容をツイートしてくれるBOTを作成する。
※本記事はRSSパーサーを使って更新情報を取得・Twitterに公開の前編である。
RSSとは
RSSはXMLに近いタグ付けを行い、Webサイトの更新情報を配信する手法の1つである。
Webサイトの更新を正確に把握することは人力ではとても困難なので、RSSを利用する。
RSSがよく利用されるシーンとしてはブログの更新や、ニュースサイトの更新などである。
通常はRSSリーダーと組み合わせて通知を受け取る用途に使うことが多い。
今回行うこと
RSSは通常はRSSリーダーで情報の更新をプッシュ通知などで受け取り、そこから情報を閲覧する場合が多いと思うが、それでは自分のスマホでしか情報を受け取れないし、特定のグループで最新情報を共有するときにとても不便である。
なので、以下の手順で自分なりのRSS情報取得サービス(Twitter BOT)を作る。
- RSSパーサーを利用してRSSの情報を取得する
- 取得した情報のタイトルと時間とLINKの情報をMySQLに保存する
- cronで1分に1回RSSの情報を新しく取得する
- データ更新されていたら、データをMySQLに書き込む
- その後、Twitter APIを利用して 更新された情報をツイートする
初めに
今回は前編部分なのでとりあえず、Twitterでの単純なBOTやRSSパーサーの利用出来る環境を構築する。
後編では、今回の内容の環境を元に実際にRSS-BOTを作成していく。
Twitter-apiの設定
Access Tokenの取得
こちらのサイトを元にTwitterのAPIを利用するためにアプリケーション登録を行う。
登録を終えたら、以下の4つの値をメモっておく。
- Consumer Key (API Key)
- Consumer Secret (API Secret)
- Access Token Key
- Access Token Secret
PHPでTwitter上にツイート
Access Tokenを取得したら、実際にツイートしてみる。
このサイトを参考にPHPのプログラムを作成する。
サーバ上にアップロードして実際にツイートしてみる。
CentOS6.8-PHP7の私の環境では2016.12.04で動作を確認しました。
RSSパーサー
今回はGoogleニュースのRSSを利用して特定のサイトに縛られないキーワードによるニュースの取得を行う。
こちらのサイトを参考にRSSパーサーが使える環境を作っていく。かなりまとめられているサイトなのでササっと読むだけでも基本的な利用法がわかる。
また、rss-phpというライブラリを利用しているが、RSS自体が簡単なフォーマットになっている為、情報が更新されたこととLINKさえわかれば良いような場合はこのライブラリとサイトの内容で十分だと判断した。
実際にサイトのPHPのコードを参考に自分の環境で動くことを確認する。
MySQL
MySQLに関してはここで環境構築方法まで書いているとかなり情報量が多くなってしまうので、他のサイトに頼るとする。以下のPDOのコードが動く環境を作れれば問題ないだろう。
MySQLの環境構築は時間があったら別な機会に記載する。
$dsn = 'xxxx';
$user = 'xxxx';
$password = 'xxxx';
function db_print(){
global $dsn;
global $user;
global $password;
try{
//データベース接続部分
$dbh = new PDO($dsn, $user, $password);
$sql = 'select * from [データベース名]';
foreach ($dbh->query($sql) as $row){
print($row);
}
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
$dbh = null;
}
db_print();
まとめ
今回はRSSパーサーの更新情報をTwitterでつぶやいてくれるBOTを作るための環境構築や設定をメインに行った。開発できる環境は整ったので、後編 (アドベントの記事のどこかで書く) は実際にRSSの情報をつぶやくところまで記載する。
参考
- RSS-Wikipedia
- PHPでRSSやAtomのフィードを取得する方法
- RSSリーダーの効率的な使い方「RSSとは」な人に朗報!Feedlyでフィード購読のすすめ
- PHPからTwitterツイート(2015年2月版)
- cronの設定
- Twitter APIの使い方まとめ
- Twitter APIでつぶやきを取得する