ゲレの工房

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

FF14雑記:スプレッドシートとGoogle Apps ScriptとIFTTTを使ってFF14難読文字クイズを画像つきでツイートするbotを作った話

作った当日、体調フラフラな状態で作ったのですが、意外とうまく動き出したので備忘録として残したいと思います。

こんな感じに動きます。

もしご興味を持った方はフォローしていただけると嬉しいです!
twitter.com


この記事はその備忘録です。

参考記事

こちらの記事を参考にしました。
qiita.com

細かい話はこちらの記事を参考にしていただくとして、この続きは私が少し変更した話をします。

スプレッドシート

1列目は文章・2列目は画像URL

スプレッドシートを見ていただけるとわかりやすいかもです。
docs.google.com

めんどくさい人向けに、一部分だけをスクリーンショット画像にしました。

画像URL

これはどこにある画像URLでも良いと思います。例えば既にツイートしている画像があれば、その画像URLでも良いかと。

画像URLを送信できるようにGASを修正

簡単に言うと1列目と2列目をそれぞれvalue1、value2に格納し、送信するようにしました。

function myOutgoingFunction() {
  const sheet = SpreadsheetApp.getActiveSheet();
  let currentRow = 1;
  while (true) {
    // 記録されていない行が見つかったとき:
    if (!sheet.getRange(currentRow, 1).getValue()) {
      break;
    }
    // 次の行へ
    currentRow++;
  }
  let random = Math.ceil( Math.random () * (currentRow-1) );
  let value1 = sheet.getRange(random, 1).getValue();
  let value2 = sheet.getRange(random, 2).getValue();
  // さっきコピーしたWebhook URLを貼り付け
  //triggerとwithの間にIFTTTで設定したEvent Nameを入れる
  const URL = 'https://maker.ifttt.com/trigger/****';

  // POSTする中身
  const teamsPayload = {
    'value1': value1,
    'value2': value2,
  };

  // UrlFetchAppのオプション
  const params = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload' : JSON.stringify(teamsPayload),
  };

  // HTTPリクエスト送信
  const res = UrlFetchApp.fetch(URL,params);
}

IFTTT側

Post Tweet with imageを使い、value1を本文、value2を画像URLとしました。

GASのトリガー

とりあえず8時間に1回ぐらい起動するように設定しました。うまくいけば8時間に1度ツイートされます。

#FF14ハッシュタグは削除

botで流れ続けるので、 #FF14ハッシュタグを荒らしてしまう可能性があるので、それは削除。 #FF14難読文字クイズ のハッシュタグだけ残しました。

終わりに

最近、暁月メインクエストでの漢字問題で名前を知られたのですが、実は結構昔から漢字問題作っています。昔の問題にも興味を持ってもらいたいなという私のわがままで、今回のbotを作りました。意外と自分で使いやすいbotに仕上がった気がします。

また色々工夫してみたいですね。

最後に、再度のお願いになりますが、botアカウントへのフォローをお願いします!
twitter.com


広告