はじめに
「仲間内で開発とかしていきたいなっ!」と思ったので、slack、google drive、gitlabなどを準備して招待を送ろうと思ったのですが、ポチポチして招待送るの面倒だなと思いました。
そこで「GASとslackを使って権限や招待の自動化をしよう!」ってことで実装しました。
※ただ、gitlabのapiは有料プランでしか使えず断念しました。(有料に切り替えたらやるぞ!)
実装
まずはコード全体
権限を自動付与するスクリプト
function doPost(event) {
const params = JSON.parse(event.postData.getDataAsString());
if(params.challenge) {
return ContentService.createTextOutput(params.challenge);
};
const email = params.event.user.profile.email; // eventパラメータからメールアドレスを取得
shareFolder(email);
}
/*
ユーザーに指定のフォルダの権限を上げる関数
*/
function shareFolder(email) {
const folderId = "権限を上げたいフォルダ"; // フォルダのID
const folder = DriveApp.getFolderById(folderId);
folder.addEditor(email);
};
メインのdoPost関数でユーザーがワークスペースに参加したときのeventパラメータを取得しています。
その中からemailを取り出しています。
shareFolder関数ではまず、DriveApp.getFolderById(folderId)
でどのフォルダを操作するかを指定しインスタンスを作ります。
そして、folder.addEditor(email)
addEditorメソッドを作成して、指定のemailに編集権限を渡します。閲覧やオーナー権限なども渡すことができます!
さいごに
このような面倒だなって作業を自動化したりや、データ活用の分野のお手伝いを個人で承っております。ご興味ある方はご連絡ください!