PHPスプリプトからTweetしたいと思うことってありますよね。
今回はTwitter APIを使い、PHPからTweetをしてみます。
Contents
- 1.目的や出来ること
- 2.動作環境と準備
- 3.手順
- 3-1.TwitterOauthのダウンロード
- 3-2.ディレクトリの設定とファイルのアップロード
- 3-3.TwitterAppのkeyを取得
- 3-4.Tweet用PHP
- 4.実行
- 5.まとめ
目次
目的や出来ること
Twitter APIを使ってPHPからTweetするというのは、例えばTwitterでbotを作るときに必要です。
Twitterのbot作成サービスはすでに沢山あり、
「指定した時間になったら、あらかじめ指定した文章を呟く」というようなbotは誰でも簡単に作れてしまいます。
今回は既成のサービスを使わず、1からbotを作る場合に必要な手順の第一歩となります。
PHPのスクリプトでbotを作れば、リプライに対する返信や条件分岐で呟く文章を変えたり、
想像次第ではとても面白い物が作れそうです。
例えば、よく目にするのがおみくじbotだとか、アニメのキャラクターのbotだとか、
あれらは既成のbot作成サービスではなく、自作のphpスクリプトで動いているはずです。
私も将来的には何か面白いbotを作れたらなと、アイデアを探しています(笑)
その第一歩としてTwitter APIを用いたPHPスクリプトからのTweetを勉強したのでこの記事にまとめます。
実際に「匿名Tweetbot おふとん」を作ったので、よかったらみに来てください。
動作環境と準備
必要な物
・Twitter APP
Twitter Developersより開発者登録をし、bot用のアプリケーションを1つ用意してください。
→取得方法を別記事にまとめます。
・レンタルサーバー
大前提でPHPが使えるサーバー
無料のもので十分です
PHPのスクリプトファイル等をアップロード可能なサーバーを用意してください。
ドメインも無料のもので十分です。
・TwitterOauth
GitHubからソースファイルを一式ダウンロードしましょう(後述します)
手順
動作環境が整っている前提で説明していきます。
TwitterOauthのダウンロード
今回はAbraham Williams さんが開発した "TwitterOauth" を使っていきます。
これは認知度が世界一と言ってもいいくらい有名な、昔からあるライブラリで、Twitter の一通りの操作を行うことができます。
TwitterOAuth 以外にも PHP から Twitter の API を操作できるライブラリはありますが、TwitterOAuth はその中でもメジャーなライブラリです。
下記ページからダウンロードができます。
https://github.com/abraham/twitteroauth
ZIP形式でダウンロードするかと思いますが、解凍せず名前も変えず自分でわかるところに置いておいてください。
ディレクトリの設定とファイルアップロード
サーバー側の設定です。
今回使用したサーバーは「XREA」という無料で高性能なレンタルサーバーです。
もちろんどこのレンタルサーバーでも良いのですが、サーバーによって操作感は異なりますのでご注意ください。
サイト等の設定から使用したいドメインを選択して、
ファイルマネージャーを開いてください。
XREAの場合は左メニューから
①「サイト設定」から→②ドメインを確認し→③設定ボタンを押します。
そして「net2ftpファイルマネージャー」を押して開きましょう。
開いた最初の画面がルートディレクトリとなっているはずです。(ドメイン直下)
TwitterOauth 専用のドメインを取っているなら直下でも良いのですが、
同じドメインでサイトやブログをやっている場合は、TwitterOauth を設置するディレクトリを作成しましょう。
私はドメイン直下に「twitter」というディレクトリを作成したので、私のを例に説明を続けていきます。
TwitterOauth を設置するディレクトリに移動します。
アップロードボタンから、先ほどダウンロードしたTwitterOauth をアップロードするのですが、
ZIPファイルをアップロードすると自動で解凍してくれる機能があったので利用しました。
圧縮ファイルの方が容量が小さくて、アップロードが短く済みますから。
ファイルマネージャーに圧縮ファイルアップロード機能がなければ、事前に解凍してからアップロードしましょう。
アップロードが完了すると以下のような構成になっているかと思います。
/twitter/twitteroauth-master
TwitterAppのkeyを取得
OAuth認証のためにTwitter Developersからアプリを作成し、
4つの認証情報(consumerKey、consumerSecret、accessToken、accessTokenSecret)を生成します。
アプリを作成する方法は別の記事にする予定です。
Twitter Developersトップメニュー右側
「Apps」へ飛びます。
次の画面で作成済みアプリを確認できると思うので、
使うアプリの「Details」を押します。
ちなみに左側の赤線部がアプリの名前になっていますが、
この名前がそのままTweetに表示されます。
次にアプリの詳細画面上の「Key and tokens」タブを選択
この4つがconsumerKey、consumerSecret、accessToken、accessTokenSecretで、
OAuth認証に必要です。
(これらの認証情報は他人には教えてはいけません)
次の項目で使うのでこの画面は消さずに開いておきましょう。
Tweet用PHP
次に、twitteroauthを動かすphpファイルを作っていきます。
ローカルで作成したものをアップロードしてもいいし、
ファイルマネージャーで直接作成してもいいです。
中身はこれです。ファイル名はなんでもいいです。
[php title="oauth.php"]
$text="ツイートの投稿テストです。";
// OAuthライブラリを読み込む
require "twitteroauth-master/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
//個別の認証情報
$consumerKey = "生成した認証情報を入れてください";
$consumerSecret = "生成した認証情報を入れてください";
$accessToken = "生成した認証情報を入れてください";
$accessTokenSecret = "生成した認証情報を入れてください";
//接続
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
//投稿
$res = $connection->post("statuses/update", array("status" => $text));
[/php]
8〜11行目に先ほど確認したTwitterの認証情報を入れます。
日本語部分をKeyに置き換えてください。(クォーテーションマークは必要です)
そしてこのphpファイルを、Twitter OAuth を設置したディレクトリに直で入れます。
今回の例だとTwitter OAuth は
/twitter/twitteroauth-master
にアップロードしたので、今作った oauth.php は
/twitter/oauth.php
となります。
これで準備完了です。
実行
早速動かしましょう。
動かし方は超簡単
ブラウザから oauth.php にアクセスするだけ。
今回の例では
https://adaquila/twitter/oauth.php
にアクセスします。
すると、oauth.php の1行目に組み込まれている文字列をTweetできます。
なので1行目のクォーテーションマークの中身を変えてもう一度 oauth.php にアクセスすると変更後の文字列をTweetします。
まとめ
API制限には気をつけましょう。
今はアプリケーションを取得すること自体難しくなってますから(笑)