no-image

Twitterの自動投稿(つぶやき)機能の作成(TwitterBot)

Twitter自動投稿機能とは・・・

Twitter自動投稿機能は、あらかじめ設定した投稿内容を指定したタイミングで自動的にTwitterに『つぶやく』機能です。TwitterをみているとBot機能(自動投稿)はよく見かけますが、自身やお客様のSNSマーケティング活動に役立つと思い、独自で開発しました。

メリット

従来はTwitterへ投稿するのに、Twitterログイン画面開いて、ログインして、投稿内容を考えて、投稿する。という流れでした。定期的にTwitterを更新したくとも、1回の作業で5分程度の時間を要することもあり、定期作業によるマンネリもあり、根気よくTwitterの更新ができない状態でした。

しかし自動投稿機能では、

  • 予め投稿機能を整理できること。
  • 投稿時間を指定すること。
  • 投稿結果はメールで還元されること。
  • 過去の投稿内容、結果がログに出力され状況が一目瞭然であること。

、、、という点において作業効率化になると考えています。

予め投稿機能を整理すること、というのはまとめて考えると意外とスムーズに整理でき、20件程度の投稿内容を作成しました。

また投稿時間を30分に1回とした場合、1日の投稿数は48回となります。

48回の投稿を手動で実施した場合、1回の投稿作業を5分とすると5分×48回=240分となります。

およそ4時間程度の作業時間であり、かつ深夜・早朝問わず作業をするので手動対応するのは本当に大変です。

そのため、自動投稿機能を導入することはSNSマーケティングにおいて重要な役割を果たすと考えております。

自動投稿機能の作成方法

Twitterアカウントの作成から実行確認までの流れを紹介します。

Twitterアカウントの取得

https://twitter.com/i/flow/signup

こちらのページからアカウントを作成します。(作成手順は割愛)

Twitter開発者登録

作成したTwitterアカウントにログインした状態で以下の開発者登録を行う。

https://developer.twitter.com/ja/developer-terms/policy

登録手順や詳細説明は以下のサイトがわかりやすかったのでご参考です。

https://qiita.com/kngsym2018/items/2524d21455aac111cdee

アクセストークン情報を取得

アプリの作成を行います。

登録作業を終えると「Customer API Keys」と「アクセストークン情報」が表示されます。

これらのコードはコーディング時に使用します。

※絶対に外部へ漏らさないようにしましょう!

トークン情報取得も以下のサイトがわかりやすかったのでご参考です。

https://qiita.com/kngsym2018/items/2524d21455aac111cdee

PHPでコーディング

取得したトークンキーを利用して自動投稿機能をコーディングしていきます。

①GitHubからライブラリのダウンロード

https://github.com/abraham/twitteroauth

②所定の場所にアップロード

③PHPファイルにコーディングする

<?php
require ‘common.php’;

// ツイートしたい文字列を配列にセット
$array = array(

);

// 配列をランダムにして、先頭を取得
shuffle( $array );

// テーブルから投稿データを取得する
// データ取得
$RTN = GetTweetData();
// 取得結果をシャッフルする
shuffle( $RTN );

// 番号、投稿内容、添付ファイルを取得
foreach($RTN as $row) {
$Tweet_id = $row[‘TW_No’];
$Tweet_Msg = $row[‘Tweet’];
$FILE_NAME = $row[‘FILE_NAME’];
}

// 投稿メッセージをセットする
$tweet = $Tweet_Msg;

// TwitterOAuthを利用するためautoload.phpを読み込み
require ‘twitteroauth-master/autoload.php’;
require ‘twitteroauth-master/src/TwitterOAuth.php’;

// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;

// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
$CK = ‘xxxxxxxxxxxxxxxxxxxx’; // Consumer Keyをセット
$CS = ‘xxxxxxxxxxxxxxxxxxxx’; // Consumer Secretをセット
$AT = ‘xxxxxxxxxxxxxxxxxxxx’; // Access Tokenをセット
$AS = ‘xxxxxxxxxxxxxxxxxxxx’; // Access Token Secretをセット

// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( $CK, $CS, $AT, $AS );

// ★画像投稿処理 画像ファイルはimgフォルダ下にアップロードしておく
if (!is_null($FILE_NAME)) {
$path = GET_LOG_PATH_tw() . ‘/img/’ . $FILE_NAME; //画像のパス指定
$media1 = $connect->upload(‘media/upload’, [‘media’ => $path]);
$file_string = $media1->media_id_string;
}

//投稿設定
if(is_null($FILE_NAME)) {
// テキストのみ投稿
$parameters = array(
// 投稿内容を140文字でカット
‘status’ => mb_substr($tweet , 0, 140)
);
} else {
// 画像付き投稿
$parameters = array(
‘status’ => mb_substr($tweet , 0, 140),
‘media_ids’ => $file_string
);
}

//投稿処理
$result = $connect->post(‘statuses/update’, $parameters);

if( $connect->getLastHttpCode() == 200 ){
// APIリクエストが成功時の処理
printf(‘投稿内容:’ . $tweet);
$FLG = “成功”;
}else{
// APIリクエストがエラー時の処理
//printf($connect->getLastHttpCode());
$FLG = “失敗”;
printf(‘投稿内容:’ . $tweet);
// エラー内容を出力
var_dump($connect);
// 投稿エラー時は日時をつけて再投稿
$tweet = ‘【’ . GET_NOW_DATETIME_tw() . ‘】 ‘ . “\n” . $Tweet_Msg;

//投稿設定
if(is_null($FILE_NAME)) {
$parameters = array(
‘status’ => mb_substr($tweet , 0, 140)
);
} else {
$parameters = array(
‘status’ => mb_substr($tweet , 0, 140),
‘media_ids’ => $file_string
);
}

//投稿処理
$result = $connect->post(‘statuses/update’, $parameters);

if( $connect->getLastHttpCode() == 200 ){
$FLG = “再投稿成功”;
}
}
// メール通知
$ADRESS = “xxxxxx@gmail.com”;
$TITLE = “Twitter更新処理:” . $FLG;
$CONTENT = $tweet;
SEND_MAIL_tw($ADRESS, $TITLE, $CONTENT);

// 最終投稿日更新
UPDATE_TWEET($Tweet_id);

?>

カスタマイズ

投稿内容を変数ではなくDBで保有することで様々なカスタマイズをしました。

  • 表示期間From~Toを保有することで事前登録を可能、また期限が来れば投稿対象外となるようにしました。
  • 表示時間From~Toを保有することで特定の時間帯のみ投稿できるようにしました。
  • メール配信有無をつけることで特定の投稿のみ成否を管理者へメール配信可能としました。
  • 削除フラグをつけることで一時的に投稿対象外としたい場合はわざわざ削除せずに簡単に投稿対象外とすることができました。

cron設定

プログラムが実行できることを確認のうえ、cronを設定時指定した時間ごとにプログラムを実行しましょう。

1分ごとに実行する場合

 

実行結果確認

プログラム実行後は投稿結果をメール配信するプログラムとしています。

指定したアドレスにメールが届いていることを確認しましょう。またTwitter画面からもメールに記載された投稿内容が投稿されていることを確認しましょう。

 

自動投稿機能の感想

Twitterはアカウント作成したときから定期的に更新していこうと意気込んでおりました。

しかし始めて見ると毎回投稿内容を考え、投稿し、また投稿内容を考えて・・というループは非常に難しかったです。

自動投稿機能は思いついたときに投稿内容を纏めて登録し、あとは投稿されるのを待つのみ。夜中でも朝方でも発熱で動けない時も、休みに遊びに行っている時もちゃ~んと投稿してくれる、といういう意味ではかなり便利なツールと実感しました。

また画像添付機能も追加しているので、視覚的に訴えたい情報などは画像ファイルを設定しておくことで画像付き投稿をすることも可能であり、便利な機能です。

あとは投稿内容により「いいね」や「リツィート」をしてもらうこともありますが、今後は「返信」や「DM」に繋がるような投稿をしていきたいと思います。

 

投稿した内容はTwitterアナリティクスを使うことで分析可能となります。

投稿内容ごとに表示回数や関心数を集計できるので、どのような投稿内容が人気があるのか、ないのか、をしっかり精査し精度の高い投稿を設定していきたいと思います。

※Twtterアナリティクス自動解析ツールも作成中です。

作成アドバイス

Twitter自動投稿機能はネット上に多くの情報が存在するため、正直困難な状況になることはありませんでした。

ただし、Twitter開発者アカウント申請時は英語だったので、驚いたくらいです。

PHPのコーディングもサンプル通りで実装可能でした。

あとは自身が付け加えたい機能を工夫しながら追加したくらいです

お問い合わせはこちら

お問い合わせ