LoginSignup
36
25

More than 3 years have passed since last update.

GoogleSpreadSheetからdiscordにpost

Last updated at Posted at 2017-12-28

ストックじゃなくていいねください。

事前準備

途中から 前回までやってる前提の話ができてきます。
ただ、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にあった記事拾ってきました。
ここの記事見てやってみてください。
以上

36
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
25