💬
GAS で躓いたメモ
概要
初めて GAS を触って、いくつか躓いたのでメモを残しておく。
URL クラスや URLSearchParams がない
JavaScript で API からデータを取得する場合、URL
クラスと URLSearchParams
クラスを使って URL を組み立て fetch
関数などを使うことが多い。
ただ、GAS では URL
クラスと URLSearchParams
クラスがなかったので 、クエリパラメーターをオブジェクトから作る関数を自作した。
const makeQueryString = (obj: object, encode: boolean = true): string => {
return Object.keys(obj).map(key => {
if (encode) {
return `${key}=${encodeURIComponent(obj[key])}`;
} else {
return `${key}=${obj[key]}`;
}
}).join('&');
}
export default makeQueryString
PropertiesService
を使う
環境変数は GAS で環境変数を使うには PropertiesService
を使う。
const accessToken = PropertiesService.getProperty('ACCESS_TOKEN');
セルやカラムは 1 からスタート
セルにアクセスするために getRange
メソッドが用意されているが、注意が必要である。
多くのプログラミング言語は、配列やリストの一番最初を 0
として扱う。そのため、 A1
セルを取得するためには getRange(0, 0)
で良いと思ったがエラーになる。
getRange
メソッドに渡す row
と column
は 1
以上の値である必要がある。
const sheet = SpreadsheetApp.getActiveSheet();
const value = sheet.getRange(0, 0).getValue(); // NG
const value = sheet.getRange(1, 1).getValue(); // OK
sheet.getRange(1, 1)
で A1
セルにアクセスできる。
Discussion