園児ニアのメモ

ただのエンジニア。何でも屋みたいな扱い受けてます。

【GAS】ライブラリの作成

GoogleAppScript(以下GAS)でプロジェクトをライブラリとして後悔する方法を記載します。

GASの用意

毎度ながら過去記事参照でお願いします。
madgenius.hateblo.jp

ライブラリ用プロジェクトの作成

ライブラリ用のプロジェクトを作成してください。

ライブラリにした時にメソッド名が被ると厄介なので頭文字的なのをメソッド名に入れるか、クラス化してください。

ライブラリとして安定版を保存

ライブラリとして読み込む時に「版を保存」する必要があります。
編集途中のものがライブラリになっていては困りますよね...

プロジェクトの「ファイル > 版を管理」を開き
f:id:nanokanato:20170906120229p:plain:w300

版を管理のポップアップで「新しいバージョンを保存」すれば完了です。
登録時の変更内容はライブラリを使う人にも見られますが、保存したユーザーは見られません。
f:id:nanokanato:20170906120442p:plain:w300

ライブラリを追加する時に必要なプロジェクトキーは「ファイル > プロジェクトのプロパティ」のスクリプトIDを使用してください。
f:id:nanokanato:20170906120733p:plain:w300

ライブラリ内で使っているライブラリは追加した状態で「版を保存」してください。

また、GASプロジェクトの共有権限を全体などに変更してください。
(GSuiteなどを使用の場合、同じユーザーなのに権限が無いと怒られる...)

実際にライブラリを使ってみた

ライブラリを使うために新規で別のプロジェクトを作りました。
「リソース > ライブラリ...」よりプロジェクトキーを入力してライブラリを追加してください。
f:id:nanokanato:20170906121147p:plain:w300

追加するとそのライブラリが表示されます。
f:id:nanokanato:20170906133614p:plain:w300

追加したライブラリのタイトルのリンクをクリックすることでライブラリへのアクセス権限があるかを確認できます。
f:id:nanokanato:20170906123147p:plain:w300

ライブラリのメソッドを呼び出す時は、「(ライブラリの識別子).(メソッド名)」です。
以下はその例。Twitter連携用のライブラリでメソッドはDM送信。

function myFunction() {
    ELETwitter.TwitterSendDM(null,"2272932474","テスト");
}

こんな感じでTwitterにDMがきました。
f:id:nanokanato:20170906135207p:plain:w300

実際に作ったライブラリはこちら
madgenius.hateblo.jp