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

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

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

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

870閲覧

スプレットシートからグラフをスラックに通知したい

reoreo1105

総合スコア5

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

1クリップ

投稿2023/05/25 15:51

実現したいこと

GSSに作成したグラフをSlackに通知したい

前提

GASでグラフをSlackに通知するなシステムを作っています。
実装中に以下のエラーメッセージが発生しました。

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

Exception: Service Spreadsheets failed while accessing document with id XXXXXX myFunction @ コード.gs:8

該当のソースコード

function myFunction(){ // スプレッドシートの情報を変数に取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); // シート名を指定してグラフを取得する var sheet = ss.getSheetByName("数値"); var charts = sheet.getCharts(); var chartImage = charts[0].getBlob().getAs('image/png').setName("graph.png"); sendSlack(chartImage); } function sendSlack(chart){ var url = 'https://slack.com/api/files.upload'; // トークンを記載 var token = 'xoxb-105XXXXXX'; // 投稿したいチャネル名を記載 var channel = '#test'; //パラメータ作成 var payload = { 'token' : token, 'channels' : channel, 'file' : chart, 'filename' : '数値' }; var params = { 'method' : 'post', 'payload' : payload }; var response = UrlFetchApp.fetch(url, params); }

試したこと

・ファイルのサイズはすごく小さいので、大きさでのエラーではないと思います・・
・IMPORTRANGEで数値を持ってきて、それをグラフにしています(大きさ:M29:Q34の範囲)
・数値が入力されていない【データなし】の状態だとスラックに通知することができます
・逆にグラフになっているものが上記のエラーが発生してしまいます

どなたか、改善方法をご教示いただけますと幸いでございます。

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

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

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

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

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

YellowGreen

2023/05/26 04:31 編集

追試してみましたが、当方ではエラーは発生せず、画像が投稿されました。 グラフそのものに何かエラーになる要因があるのかもしれませんね。 なお、getAs()の戻り値はBlobなので次のようにgetBlob()がなくても動作すると思います。 var chartImage = charts[0].getAs('image/png').setName("graph.png");
reoreo1105

2023/05/26 04:30

ご回答ありがとうございます! 複合グラフを使用していたのですが、こちらのグラフでエラーが出ていたようです・・ 他のグラフに変更したところ、投稿されました。。!
YellowGreen

2023/05/26 04:40

それは、何よりでした。 解決したのであれば、自己解決として質問をクローズしていただくとよろしいかと思います。
guest

回答1

0

自己解決

複合グラフを使用していたのですが、こちらのグラフでエラーが出ていたようです・・
他のグラフに変えたところ、エラーが出ず、無事スラックに投稿されました。

投稿2023/05/26 06:12

reoreo1105

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問