2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Slackのワークスペースに参加したユーザーにGoogle Driveの権限を渡す方法

Posted at

はじめに

「仲間内で開発とかしていきたいなっ!」と思ったので、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に編集権限を渡します。閲覧やオーナー権限なども渡すことができます!

さいごに

このような面倒だなって作業を自動化したりや、データ活用の分野のお手伝いを個人で承っております。ご興味ある方はご連絡ください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?