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(); と書けばよいですよ.
