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

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

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

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

Q&A

1回答

8555閲覧

応答の全文を見るには muteHttpExceptions オプションを使用してくだいと表示されますが

Shin_san

総合スコア4

Google Apps Script

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

0グッド

0クリップ

投稿2020/03/22 09:29

私は初心者ですが、GASでBotを作りながらチャットワークスとAPIで接続したいのですが、

エラーが発生して何度も確認しておりますが理由がわかりません。

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

メッセージの詳細
Exception: https://api.chatwork.com のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: {"errors":["Parameter 'body' is too short"]}(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 78、ファイル「client」)

該当のソースコード

function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN');

for(let i = 2; i <= lastRow; i++) {
if(!sheet.getRange(i, 4).getValue()){

const values = sheet.getRange(i, 1, 1, 3).getValues(); let body = ''; body += values[0][0] + '\n'; //meigen body += values[0][1] + '\n'; //person body += values[0][2] + '\n'; //info sendMessage(token, body); sheet.getRange(i, 4).setValue(true); if(i >= lastRow) { sheet.getRange(2, 4, lastRow - 1).clearContent(); } break; }

}
}

function sendMessage(token, body){
const cw = ChatWorkClient.factory({token:"トークンを入力しております"});
cw.sendMessageToMyChat(body);
}

試したこと

function sendMessageのところで何度も確認をしました。

テストメッセージは送付できました。
function testMessage(){
const cw = ChatWorkClient.factory({token: 'トークン番号'});
const body = 'テストメッセージ';
cw.sendMessageToMyChat(body);

補足情報

ウインドーズ10を利用しております。
Gsuite IDを利用しております。

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

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

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

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

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

guest

回答1

0

エラーとテストメッセージが送信できたという話から、途中に入力値のないセルがあると思われます。

※過去に別の質問で経験がありますが、質問者様が認識する最終行とスクリプトで取得する最終行に違いがあることがよくあります。
原因は、スペースのような見えない文字がある、関数がある、などが考えられますが、絶対ないですとおっしゃるかたもおられるので、突き止められません。しかしながら、スクリプトで取得する最終行が想定より下の行であることが事例としてあるのは確実です。

対処方法は、メッセージのうち必ず空白になってはいけない列、例えば名言のA列は空白でないなど、を決め、その列が空白だったら送信をスキップする処理にすると良いと思います。

もうちょっと実用的な用例であれば、具体的にコードにします。

投稿2020/03/22 15:46

編集2020/03/22 15:47
papinianus

総合スコア12705

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

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

Shin_san

2020/03/24 10:52

アドバイス有難うございます。空白になっていないかなどを確認してみます。
papinianus

2020/03/24 12:26

確認したところで空白はないという確信を得るだけです。 > 対処方法は、メッセージのうち必ず空白になってはいけない列、例えば名言のA列は空白でないなど、を決め、その列が空白だったら送信をスキップする処理にすると良いと思います
Shin_san

2020/03/27 11:05

問題が解決できました。私がROOMIDを間違ったところを入力しておりました。いろいろアドバイスいただきまして有難うございました。
papinianus

2020/03/27 11:07

ToMyChatで、roomidは関係なさそう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問