スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

twitterボットを作る 2.twitterのapiを利用して投稿してみる

■目的


・・・前回の続き

twitterのボットを作ります。開発言語はPHPです。
あまり考えずともコピペすれば動くように説明します。
今回作るボットは下記のことができますのでまずはやりたいことにマッチしているか確認してください。

1. twitterのつぶやきから指定の文字列を検索する
2. 好きな文字列をつぶやく※
3. 特定のアカウントをフォローする※
4. 特定のつぶやきをリツイートする※
5. 特定のつぶやきをお気に入りする※

※ただし、特定のアカウントでのみ実行可能


上のただし書きの意味は次のとおりです。
twitterのボットを作る場合、まずはtwitterのアカウントを開発者のアカウントとして登録する必要があります。ご利用中のtwitterアカウントがある場合はそのアカウントを開発者として登録することもできますし、新規でtwitterアカウントを作成してもOKです。
今回作成するボットは、「登録した開発用アカウントでのみ」機能するプログラムを意味します。
"任意のtwitterアカウントでログインすると1日に5人フォローする"みたいなサービスもアチラコチラに有りますが、そういった不特定多数のアカウントをコントロールするような処理ではなく、あくまでもtwitterに登録された開発用のアカウントでのみ「フォロー」や「リツイート」ができる、という認識でいてください。


■用意するもの


・PHPが動くサーバ

他にもいろいろ必要ですが、
この後の説明で順次準備していくのでステップを追っていけばOKです。
ただ、PHPが動くサーバだけは事前に準備が必要なのでこれがないと次に進めません。
PHPが動くサーバに関しては別途導入方法をご案内し、今回はあるものとして進めます。

参考:ウェブページの始め方

■開発ステップ


1. twitterに開発者登録をし、4つのキーを手に入れる
2. twitterのapiを利用して投稿してみる
3. スケジュールを組む


■開発開始


1. twitterに開発者登録をし、4つのキーを手に入れる
2. twitterのapiを利用して投稿してみる(所要時間10分)
前回の内容でtwitterへの登録は完了しているので早速プログラムを作っていきます。
ここでのゴールは、作成してアップロードされたPHPを叩くとボットが動く、ということです。

①ライブラリを落とす


ここからtwitterのAPIを使っていくのですが、twitterのAPIを利用するのに必要な処理を全部自分で書くのは大変なのですでにその部分を終わらせてくれている人の知恵を拝借します。
下記の2つのphpファイルをダウンロードします。

OAuth.php
twitteroauth.php

これらのファイルは下記よりダウンロードできます。
https://github.com/abraham/twitteroauth


abraham twitteroauth · GitHub



ZIPファイルを解凍するとtwitteroauthというフォルダの中に上記2つのphpファイルが入っています。これらのファイルは名前の通りtwitterとの認証に必要な処理を済ませてくれるライブラリです。
ここでは特に内容には触れず、そういうもんだと思って進みます。



②ボットの本体


下記をまるまる任意のテキストエディタにコピペして、
my_twitter_app.php
という名前で保存してください。


<?php
require_once('twitteroauth.php');

//xxxxxxxxxxxxxxxxの部分に4つのキーを入力
$consumerKey = "xxxxxxxxxxxxxxxx";
$consumerSecret = "xxxxxxxxxxxxxxxx";
$accessToken = "xxxxxxxxxxxxxxxx";
$accessTokenSecret = "xxxxxxxxxxxxxxxx";
 
$twObj = new TwitterOAuth(
    $consumerKey,
    $consumerSecret,
    $accessToken,
    $accessTokenSecret
);

//1. twitterのつぶやきから指定の文字列を検索する
$key = "おはようございます"; //検索ワード
$options = array('q'=>$key,'count'=>'1','lang'=>'ja');//countの値を変えることで検索結果の取得数を決める。ここでは1としているので1つしか結果を返さない。
$url = 'https://api.twitter.com/1.1/search/tweets.json?exclude_replies=true';
$json = $twObj->OAuthRequest($url,'GET',$options);

//検索結果から情報を抜き出します
$jset = json_decode($json, true);
foreach ($jset['statuses'] as $result){
    $id = $result['id_str']; //*******************************下の方で使います
    $user_id = $result['user']['id_str'];//*******************************下の方で使います
    $name = $result['in_reply_to_screen_name'];
    $uri = "http://twitter.com/".$name;
    $link = $result['user']['profile_image_url'];
    $content = $result['text'];
    $updated = $result['created_at'];
}
print '<html><head><meta charset="utf-8">';//文字化け防止
print $content;

//2. 好きな文字列をつぶやく
$postMsg = "おはようございます"; //つぶやく内容
$url = "http://api.twitter.com/1.1/statuses/update.json";
$res = $twObj->OAuthRequest($url,"POST",array('status'=>"$postMsg"));

//3. 特定のアカウントをフォローする
$url = "https://api.twitter.com/1.1/friendships/create.json?user_id=" . $user_id ."&follow=true";
$res = $twObj->OAuthRequest($url,"POST",array());

//4. 特定のつぶやきをリツイートする
$url ="https://api.twitter.com/1.1/statuses/retweet/".$id.".json";
$res = $twObj->OAuthRequest($url,"POST",array());

//5. 特定のつぶやきをお気に入りする
$url = "https://api.twitter.com/1.1/favorites/create.json?id=" . $id;
$res = $twObj->OAuthRequest($url,"POST",array());

if ($res!= 200) {
    //Do something if the request was unsuccessful
    //echo 'There was an error posting the message.';
}
?>


③キーを更新


上記の赤字の部分が前回の記事で解説した
1. twitterに開発者登録をし、4つのキーを手に入れる
で手に入れたキーを入力すべき部分なので登録したアプリのDetailsか情報を転記してください。

https://dev.twitter.com/apps




④プログラムの簡単な解説


コード内の緑色は今回の開発ボットの下記の5つの機能の実装部分です。

1. twitterのつぶやきから指定の文字列を検索する
2. 好きな文字列をつぶやく
3. 特定のアカウントをフォローする
4. 特定のつぶやきをリツイートする
5. 特定のつぶやきをお気に入りする

このままサーバにアップして実行すると上記すべてを実行してしまうので必要に応じてコードを間引いて下ください。「好きな文字列をつぶやく」ボットを作りたい場合は1,3,4,5の部分は削除またはコメントアウトしてください。
ただし、3,4,5は1の結果を元に実行する仕様になっているため、例えば「特定のつぶやきをリツイートする」ボットにする場合は1, 4を残して2, 3, 5は削除して構いません。


⑤サーバへのアップ


下記の3つのファイルをPHPが動くサーバにアップロードしてください。
すべて同じディレクトリにアップするようにしてください。

my_twitter_app.php -②③で作成したもの
OAuth.php -①でダウンロードしたもの
twitteroauth.php -①でダウンロードしたもの


⑥動作確認


アップロードした下記のファイルをウェブブラウザで開けば実行することができます。
my_twitter_app.php
1の検索結果はページを開くと結果が表示されます。
それ以外の動作は開発者登録したtwitterアカウントをtwitterのページで表示すれば確認できます。




いかがでしょうか?うまくいきましたか?
今回はボット作成の一歩手前、「twitterのapiを利用して投稿してみる」を実装しました。
次回は今回の内容をもう少し解説します。
うまく行かなかった方は次の投稿を御覧ください。

コメント

コメントの投稿

非公開コメント

PR

PR

プロフィール

何でも書くman

Author:何でも書くman
思ったことや備忘録など、とりあえずなんでも書きます。IT系のことや趣味、生活に関わることなども。

ページの先頭へ戻る
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。