質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

0回答

3110閲覧

GAS Chatに画像を付けて送りたい!

oyoyoo

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/02/03 13:15

編集2021/02/03 15:15

前提・実現したいこと

■前提
GAS(Google Apps Script)を使ってChatBotを作りました。
現在はテキストのみ、毎日自動送信しています。
■実現したしこと
テキストだけではさみしいので、画像も付けたいと思っています!
画像を添付する方法がどうしてもわからず、教えて頂きたいです><

発生している問題・エラーメッセージ

Gmail宛には、画像を添付ファイルとして送信することができました。
(画像はGoogle Driveに保存しています)

GmailApp.sendEmail(宛先,件名,本文,添付ファイル);

Google ChatのBOTに画像が送れるよう、現在動いているソースコードを一部修正してみました。
(修正箇所はコメントを入れています)
しかし、一番下の「var response」にてエラーが発生しています。
optionの中身が誤っている・不足していることが原因かと思っていますが、上手く修正できずにおります><
アドバイス頂けますと大変助かります。よろしくお願いします。

function myFunction() { // ChatBotに送信するテキストをスプレッドシートから取得する var sprsheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/XXX/edit?usp=sharing"); // スプレッドシートの内、該当のシート名を取得する var objsheet = sprsheet.getSheetByName("テキスト用"); // 対象シートの内、テキスト送信したいセルを取得する var range1 = objsheet.getRange(2,1).getValue(); var range2 = objsheet.getRange(2,2).getValue(); // 【3行追加】画像をGoogleDriveから取得する var name = "XXX.png"; var pic = DriveApp.getFilesByName(name).next(); Logger.log(pic); // ChatBotのURL var url = "https://chat.googleapis.com/v1/space/XXX/messages?key=XXX"; // テキストの内容 text = range1 +"\n"+range2 var payload = { "text" : text, "thread" : { "name" : "spaces/XXX/threads/XXX" } } var json = JSON.stringify(payload); // 【5行コメントアウト】画像も添付できるように、現在動いているコードを下記に変更 // var options = { // "method" : "post", // "contentType" : 'application/json; charset=utf-8', // "payload" : json // } // 【4行追加】画像も添付できるように、現在動いている上記のコードを下記に変更する var options = { "method" : "post", "contentType" : "image/png", } var response = UrlFetchApp.fetch(url. options); }

■エラーメッセージ

Exception : Request failed for https://chat.googleapis.com returned code 400. Truncated server response: {

"error" : 400,
"message" : "Message cannot be empty.",
"status" : "INVALID_ARGUMENT"
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/03 13:52 編集

ChatBotのソースコードは質問文に掲載されているもので全部なのでしょうか? urlの中身が記載されていません。 仮に一部しか書いていないのであれば、問題はどこに潜んでいるかわからないのでなるべく全部掲載してください。 全部公開したくない場合でも、同じ問題が発生する最小限の、動くコード(テキストは送信できるが、画像を送ろうとするとエラーが表示されるコード)に変えて記載してください。
oyoyoo

2021/02/03 15:17

qnoirさん 返信頂きありがとうございます。 現在動いているソースコードに、今回の変更箇所を記入したソースコードを上記に更新致しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問