Google Apps Scripit で書いたプログラムを配付できるようにしてみた
Google Apps Scripit で書いたプログラムを配付できるようにしてみた:
Google Apps Script で作成したプログラムを、他のユーザに配付して利用して貰いたいと考えていました。
この記事を見つけました。
Google Apps Script API を使ってスクリプトを配布する – Wataru Nagasawa – Medium
まず、Google Apps Script でプログラムを作成します。
Google ドライブにプロジェクトが作成されます。
参考 Google Apps Scriptにおける「プロジェクト」の関係 - Qiita
作成したプログラムを含むプロジェクトは JSON ファイルでダウンロードできます。
参考 Google Apps Scriptのプロジェクトのコードを外部からダウンロード/アップロード(ダウンロード編) - Qiita
今回は
今回は
参考 ウェブアプリで Google アカウント認証して API 呼出してみた - Qiita
事前にダウンロードしておいた JSON ファイルを取得します。
上記のウェブクライアントアプリを実行すると、Google アカウントにサインインする画面が開きます。そこでサインインしたアカウントの Google ドライブに、GAS プログラムがコピーされます。
上記のアプリを実行してサインインする Google アカウント、つまり配付先になるアカウントで、以下のページを開き、
Google Apps Script Dashboard
「設定」画面で
はじめに
Google Apps Script で作成したプログラムを、他のユーザに配付して利用して貰いたいと考えていました。この記事を見つけました。
Google Apps Script API を使ってスクリプトを配布する – Wataru Nagasawa – Medium
配付したいプログラムを準備する
プログラムを Google Apps Script で作成する
まず、Google Apps Script でプログラムを作成します。Google ドライブにプロジェクトが作成されます。
参考 Google Apps Scriptにおける「プロジェクト」の関係 - Qiita
作成したプログラムをダウンロードしておく
作成したプログラムを含むプロジェクトは JSON ファイルでダウンロードできます。参考 Google Apps Scriptのプロジェクトのコードを外部からダウンロード/アップロード(ダウンロード編) - Qiita
Google アカウント認証の準備する
- Google アカウントを作成する。既にあればそれを使用する (https://www.google.com/accounts)
- プロジェクトを作成する (https://console.developers.google.com/project)
- 使用したい API を選択して有効にする (https://console.developers.google.com/apis/library)
- 認証情報を作成する (https://console.developers.google.com/apis/credentials)
利用したい API を有効にする
今回は Apps Script API
を有効にしておきます。
スコープを調べておく
今回は https://www.googleapis.com/auth/script.projects
https://www.googleapis.com/auth/script.deployments
になります。
ウェブクライアントアプリを作成する
参考 ウェブアプリで Google アカウント認証して API 呼出してみた - Qiitaindex.html
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script> <button id="install">Install</button>
index.js
var apiKey = '◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆'; var clientId = '●●●●●●-●●●●●●●●●●●●●●●●.apps.googleusercontent.com'; var scope = 'https://www.googleapis.com/auth/drive'; $(document).ready(function(){ gapi.load('client', function(){ gapi.client.init({ apiKey: apiKey, clientId: clientId, scope: scope }) .then(function(){ console.log("gapi loaded."); }) }); }); $('#install').click(function(){ // ◎サインインする gapi.auth2.getAuthInstance().signIn() .then(function(obj){ // 以下続く
配付するプログラムを取得する
事前にダウンロードしておいた JSON ファイルを取得します。index.js
function getJSON(url) { return new Promise(function(resolve, reject){ $.ajax({ url: url, type: 'get', dataType: 'json', xhrFields: { withCredentials: true }, success: function(result, textStatus, xhr) { resolve(xhr.responseJSON); }, error: function(xhr, textStatus, error) { reject(new Error(xhr.statusText)); } }); }); } $('#install').click(function(){ var json, id; // ◎サインインする gapi.auth2.getAuthInstance().signIn() .then(function(obj){ // ◎配付するプログラムを取得する return getJSON("./proj.json"); }) .then(function(data){ json = data; // 以下続く
プロジェクトを作成する
index.js
.then(function(data){ json = data; // ①プロジェクトを作成する return gapi.client.request({ path: 'https://script.googleapis.com/v1/projects', method: 'POST', body: { title: '●●●●●●●●' } }); }) .then(function(res){ id = res.result.scriptId; // 以下続く
プロジェクトを JSON ファイルの内容で更新する
index.js
.then(function(res){ id = res.result.scriptId; // ②プロジェクトの内容を更新する return gapi.client.request({ path: 'https://script.googleapis.com/v1/projects/' + id + '/content', method: 'PUT', body: json }); }) .then(function(res){ // 以下続く
公開バージョンを作成する
index.js
.then(function(res){ // ③公開バージョンを作成する return gapi.client.request({ path: 'https://script.googleapis.com/v1/projects/' + id + '/versions', method: 'POST', body: { versionNumber: 1 } }); }) .then(function(res){ // 以下続く
デプロイする
index.js
.then(function(res){ // ④デプロイする return gapi.client.request({ path: 'https://script.googleapis.com/v1/projects/' + id + '/deployments', method: 'POST', body: { versionNumber: 1 } }); }) .then(function(response){ console.log('Succeeded. '); console.log(response); },function(reason){ console.log('Failed. '); console.log(reason.body) });
ウェブクライアントアプリを実行する
上記のウェブクライアントアプリを実行すると、Google アカウントにサインインする画面が開きます。そこでサインインしたアカウントの Google ドライブに、GAS プログラムがコピーされます。
配付先のアカウントで Apps Script API を有効にしておく
上記のアプリを実行してサインインする Google アカウント、つまり配付先になるアカウントで、以下のページを開き、Google Apps Script Dashboard
「設定」画面で
Google Apps Script API
を「オン」にしておいて貰います。
コメント
コメントを投稿