ツイッターを始めてみたものの、記事を書いたらつぶやくわけでもないので、ほとんど意味をなしてないなということで
今回から記事を書いたら、ちゃんとつぶやいて見ようと思います。
そして書いた本人も大半忘れている過去記事ですが、便利なツールであるtwittbotを使って、1日1記事とか紹介してみようと思います。
TwittBotでツイートする過去記事をランダム・指定間隔で投稿する方法
まずはツイートする記事を作成します。
- ツイートは1行に
- 140文字以内に
- ハッシュタグもつけたい
TwittBot張付用文字列作成ツール
Google Analyticsから、記事をエクスポートしても良いのですが、重複やら抜けが出てしまいます。(+チェックやら、エクセルで加工やらで時間もかかる)
一番ベストなのは、下記の記事のツールを使うと抜けもれなく、記事とURLを1行で抽出することができます。
使い方は自分のサイトのURLを貼り付けて、生成された記事をコピー。記事数が多いならarchiveページ数を切り替える必要があります。
ハッシュタグの作成
記事タイトルに【ABC】あいうえおというように【】の中にカテゴリーを記述していたので、抽出は簡単でした。
エクセルにA1に生成した記事をコピペ、B1に
=" #"&MID(A1,FIND("【",A1)+1,FIND("】",A1)-FIND("【",A1,1)-1)
を記述すると先頭に#をつけて、次に【】内の文字がつながり、#ABCというハッシュタグが抽出できます。
※ハッシュタグはスペースで区切らないこと!
つぶやく記事の作成
最後に生成された記事とハッシュタグをつなげて完成
=CONCATENATE(A1,B1)
twittbotの設定
まず自分のツイッターと連携します。
[sanko href=”http://twittbot.net/” title=”twittbot” site=”twittbot” target=”_blank” rel=”nofollow”]
つぶやき登録
先に作った1行1ツイートの記事をすべてコピー。
複数行登録の文字をクリックして、ペーストします。
以上で登録完了。
※すべて消したい場合は詳細設定の下の方で消せます。

詳細設定
- つぶやく
- ランダムでつぶやく
- 時間間隔を設定

以上で、15分くらいしたら、BOTがつぶやいてくれました。
自作Botでブログ記事を全取得、整形してTwitterへ自動投稿する方法
応用編です。全記事をGASで取得して、内容を整形してツイートします。
ブログ記事をスクレイピングして投稿するTwitter Botの作成方法の紹介です。
少し手を加えて、記事に関するハッシュタグと時報の記述も追加してみました。
下記の記事を参考にTwitter APIも利用してつぶやいてます。
[sanko href=”http://www.stray-scrapbook.work/2018/01/18/210000″ title=”【コピペ導入】はてなブログ用 過去記事TweetBot【全自動】 – 野良ジニアのスクラップブック” site=”野良ジニアのスクラップブック” target=”_blank” rel=”nofollow”]
注意点

Twitter APIを利用を利用するには電話認証が必要です。Twitterの設定で認証しましょう。
そしてちゃんと認証番号を入れても、「電話認証機能を有効にしてください!」とログが表示されてエラーが発生するのですが、
F5押して何回も根気よく認証番号を入力すると成功します。
変更箇所
参考記事のGASの記述を一部変更しています。
スクレイピング
はてなブログから取得したい情報を取り出して、スプレッドシートに書き込みます。
【】で囲まれたタイトルの一部がハッシュタグとして利用したいので、半角スペースを消します。
- scraipingHatenaBlog()
// 文字列抽出
function fetchString(str, pre, suf) {
var reg = new RegExp(pre + '.*?' + suf);
var data = str.match(reg)[0]
.replace(pre, '')
.replace(suf, '')
.replace(/s+/g, "");
return data;
}
.replace(/s+/g, "");
を追加して、空白部分を削除しました。
// Spreadsheet 書き込み
function writeData(sheet, matchData) {
var published = fetchString(matchData, "<published>", "</published>")
var updated = fetchString(matchData, "<updated>", "</updated>")
var title = fetchString(matchData, "<title>", "</title>")
var tag = fetchString(matchData, "【", "】")
var link = fetchString(matchData, "<link href="", ""/>")
var row = sheet.getLastRow() + 1
sheet.getRange(row, 1).setValue(published);
sheet.getRange(row, 2).setValue(updated);
sheet.getRange(row, 3).setValue(title);
sheet.getRange(row, 4).setValue(link);
sheet.getRange(row, 5).setValue(tag);
}
【】で囲まれた部分を抽出
記事投稿
投稿したい内容を変更しています。はてなブログ投稿時の並びと一緒にしました。
- postOldEntry()
// スプレッドシートからデータ取得
var publishDates = sheet.getRange("A1").offset(0, 0, lastRow).getValues();
var updateDates = sheet.getRange("B1").offset(0, 0, lastRow).getValues();
var titles = sheet.getRange("C1").offset(0, 0, lastRow).getValues();
var urls = sheet.getRange("D1").offset(0, 0, lastRow).getValues();
var tags = sheet.getRange("E1").offset(0, 0, lastRow).getValues();
E列のハッシュタグで使用する文字を取得
// ランダムに情報抽出
var is_exclude = false;
while(is_exclude == false) {
var rand = Math.ceil(Math.random() * lastRow - 1);
var url = urls[rand][0];
var ex_row = findRow(ss.getSheetByName(EXCLUDE_SHEET), url, 1);
if(ex_row === 0) {
is_exclude = true;
}
}
var publishedStr = publishDates[rand][0]
var updatedStr = updateDates[rand][0]
var title = titles[rand][0];
var tag = tags[rand][0];
変数を作成
// 日時フォーマット変更
var current = Utilities.formatDate(new Date(), "JST","HH:mm");
var tweetStr = ""
tweetStr += current + "になりました。本日の過去記事紹介です。" + "#" + tag + " #はてなブログ n"
tweetStr += title + "n"
tweetStr += url + "n"
現在時刻を取得して、時報とハッシュタグをつけて記事投稿。

更新・投稿設定

日曜日になったら、全記事の情報を再取得。
毎日、時報も兼ねて14時と19時に過去記事投稿する設定に。
追記。トリガーをセットすることで、正確な時間の投稿ができます。
function afternoonSetTrigger() {
var triggerDay = new Date();
triggerDay.setHours(14);
triggerDay.setMinutes(00);
ScriptApp.newTrigger("main").timeBased().at(triggerDay).create();
}
function deleteTrigger() {
var triggers = ScriptApp.getProjectTriggers();
for(var i=0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == "main") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
function main() {
deleteTrigger();
postOldEntry();
}
過去記事をランダム・指定間隔で投稿するTwitterBotの作り方
本記事では過去記事を自動てツイートする方法を書きました。
やりすぎはよくないので、自然にツイートすることをおすすめします。
ブロガーがよく使うツール

ブログをサポートするツールの紹介です!
