GASでグラフの画像をツイート

簡単なサンプルコードだけ置いておこう.

function getChartBase64(){
  
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("graph");
  var chart = sheet.getCharts()[0];
  
  chart = chart.modify().build();
  sheet.updateChart(chart);  
  
  return imageData = Utilities.base64Encode(chart.getAs('image/png').getBytes());

}

何ができる?

こんな感じのことができます.この場合は ...statuses/update.json のAPIに投げる status に引用したいツイートのURLを書いて,引用ツイートして投稿してる.

コード概要

このサンプルコードの中で,使うときに変更が要るのは1箇所.3行目の sheet の名前ね.僕の場合は 'graph' という名前の sheet を使ってますけど,みなさんが同じ名前の sheet を使ってるとは限りませんから,適宜変更して使ってくださいね.

ちなみにグラフがある sheet を入力するのよ.グラフがない sheet を読み込んでも (おそらく) 意図したとおりに動かないと思う.

やろうぜ!

6行目の chart = chart.modify().build(); と7行目の sheet.updateChart(chart); は,実は本当に必要かどうか分かってない.適当に書いてあるけど,もしかしたら要らないかもしれないので,もし要らないと分かった場合は削除してくださいな (そしてよければ僕にコメントで教えてくださいな…笑).

使い方

「このコードだけ見せられても使い方が分からんよ!フルのコードを見せてくれ!」という方.ご安心を.別の記事で詳しく使い方を説明していますので,そちらをご参照あれ.

その記事で書いてる変数の var img_64 に,さっきの関数で取得したBase64エンコードしたグラフの画像を入れてください.具体的には var img_64 = getChartBase64(); と書けばよいですよ.

コメントを残す

%d人のブロガーが「いいね」をつけました。