Ruby
GoogleAppsScript
GoogleSpreadSheet
discord
SheetsAPI

事前準備

途中から 前回までやってる前提の話ができてきます。
ただ、GoogleAppsScriptでdiscordにpostしたいだけの人は無視してください。

GoogleSpreadSheet

今回はGooglesSpreadSheetからdiscordにポストさせます。
前回同様にR6S持ちキャラというスプシを見本に使用します。

discordに送信用botを作成

  1. 追加したdiscordのサーバー設定を開き、Webhoooksを選択。
  2. 名前と追加するチャンネルを設定し保存。また、その時にwebhook URLをメモしておいてください。(何度でも見れますのでメモしなくても必要なときにコピーするだけでも大丈夫です)
    39e700d23ba07e700b9bada5cc6cfd32.png
  3. 先程のwebhook URLをブラウザで開いてください。
  4. "token":"トークン"が書かれているのでtokenをメモしてください。

GoogleAppsScript

操作したいスプシのツールタブ>スクリプトエディタを選択
ファイル→新規作成→スクリプトファイル

source

function R6S() {
  // 取り扱いたいスプレッドシートのURL
    const spreadSheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1VHruuvXrQXxvfFxVpLi1mz050BJHHrLpe_itdWOlHys/edit#gid=1404341781');

    const message = "スプシ更新したよ!!" //送信するメッセージ

    discord(message);
}
function discord(message) {
    // 各所必要な項目をセットします
    const url        = 'https://discordapp.com/api/webhooks/zzzzzzzzzzzzzzzzzzzzzzzz';//discordのwebhooksのurl
    const token      = 'MzkwMTkzNjQ4NzQ4MzMxMDE4.DRwEmA.tMdsdsdsdsDU_Bsasasasasasaasasasasas';//discordのwebhooksのトークン
    const channel    = '#general';//送信したいチャンネル
    const text       = message;
    const username   = 'らんらん';//送信させたいユーザー名
    const parse      = 'full';
    const method     = 'post';

    const payload = {
        'token'      : token,
        'channel'    : channel,
        "content"    : text,
        'username'   : username,
        'parse'      : parse,
    };

    const params = {
        'method' : method,
        'payload' : payload,
        'muteHttpExceptions': true

    };


   response = UrlFetchApp.fetch(url, params);

  //Logger.log(response.getContentText());
 }

今回は「スプシ更新したよ!!」とpostするだけですが、時間の取得やシート内容をpostすることもできます。
自分で調べて改良してみてください。

トリガーの設定

スクリプトエディタに時計みたいなマークがあるのでクリック!
80792eee92fe4403784c5a6b93c3805e.png

時間や編集時など実行するタイミングを設定します。
今回はシートが編集されると実行し、discordにbotが「スプシ更新したよ!!」と送信されます。

 スプシから情報を取得

ここから前回に追加していきます。

source

discord_bot.rb
########ここより上は前回のdiscord_bor.rb
# スプシ更新したよ!!と送信されると実行
bot.message(content: 'スプシ更新したよ!!') do |event|
    range = '持ちキャラ一覧!A2:O14'#指定範囲
    response = service.get_spreadsheet_values(spreadsheet_id, range)
    response.values.each do |row|
       #Print columns A and O, which correspond to indices 0 and 4.
      event.respond "#{row[0]},#{row[1]}, #{row[2]}, #{row[3]}, #{row[4]}, #{row[5]}, #{row[6]}, #{row[7]}, #{row[9]}, #{row[10]}, #{row[11]}, #{row[12]}, #{row[13]}"
    end
  end

スプシ更新したよ!とbotが送信すると別のbotがスプシの情報を参照して指定範囲の内容を送信します。

おまけ

Discordにwebhookのbotを作ったので、GoogleHomeでdiscordでbotにメッセージを送信させるようしましょう。
書くのが面倒なのでQiitaにあった記事拾ってきました。
ここの記事見てやってみてください。
以上