twitterに画像付きツイートをする、いわゆる「BOT」を作りたいと思って、色々と調べてみました。
twitter用のプログラムを開発するには、プロフィールに携帯電話番号を登録し、Application Managementで開発者用の登録をし、APIキーやアクセストークンなどを取得する必要があります。
abraham/twitteroauth というライブラリを使うことで、画像付きツイートをするためのコードは、超簡単になります。
今回、サーバーは、Xserverを使ったので、abraham/twitteroauth は、インストールするのではなく、ダウンロードして、サーバーにアップロードしました。
まず、こちらからライブラリをダウンロードします。
https://github.com/abraham/twitteroauth
twitteroauth-master.zip というファイルがダウンロードされます。
twitteroauth-master.zip を展開すると、twitteroauth-masterフォルダの中に、いくつかのファイルと srcフォルダ、testsフォルダがあります。
ファイルとsrcフォルダをサーバーの任意の場所にアップします。
ツイートするためのphpコードは、こんな感じです。
<?php
// 必要なライブラリを読み込む
require_once('twitteroauth/autoload.php');
require_once('twitteroauth/src/TwitterOAuth.php');
// ツイッターにアクセスするためのパラメータをセット
define('consumer_key', 'APIキー');
define('consumer_secret', 'API シークレット');
define('access_token', 'アクセストークン');
define('access_token_secret', 'アクセストークン シークレット');
use Abraham\TwitterOAuth\TwitterOAuth;
// ツイッターにアクセス
$connection = new TwitterOAuth(
consumer_key,
consumer_secret,
access_token,
access_token_secret
);
// 画像をアップロードして、そのメディアIDを変数に格納
$media1 = $connection->upload('media/upload', ['media' => '画像ファイル1']);
$media2 = $connection->upload('media/upload', ['media' => '画像ファイル2']);
// ツイートするためのパラメータをセット
$parameters = [
'status' => 'ツイートする内容140文字以内',
'media_ids' => implode(',', [
$media1->media_id_string,
$media2->media_id_string
])
];
// ツイートを実行
$result = $connection->post('statuses/update', $parameters);
?>
autoload.php と TwitterOAuth.php に、正しくパスを通せば、機能します。
指定した画像ファイルが無いと、エラーになりますが、文字のツイートはされます。
BOTにするなら、ツイートする文字列や画像のファイル名などをデータベース管理したり、cron で指定した時間にプログラムを自動実行させる必要があります。
画像付きのツイートは、自分で最初からコードを書こうと思うと、かなり面倒ですが、ライブラリを使うことで、こんなに簡単に実現できてしまいます。
Amazonプライム会員なら無料で読めるビジネス書4選
上を目指すために読んでおきたい8冊
私が買ってよかったパソコン&iPhone関連商品 トップ8
参考記事:自撮りするなら広角レンズがオススメ