#ConfluenceをGASを使って自動化してみてた~テンプレート情報取得
個人的にConfluenceで毎回MTGの議事録を作るのがめんどくさかったので、自動化することにしました。
定期的に議事録が作られて、MTG議事録のURLが返ってきたらうれしいなということで、
##やりたいこと
- ConfluenceからMTGのテンプレートの情報を取得
- テンプレート情報を使用して、新しいMTG議事録を作成し、URLを返す
- SlackへURLを通知する
##事前に準備するもの
- Googleのアカウント
- Confluence
- グローバルテンプレートの準備
- テンプレートID等を事前に準備しておく
##参考情報
Confluenceの開発者向け情報
https://developer.atlassian.com/cloud/confluence/rest/#api-template-page-get
①テンプレートの情報を取得する
Google spreadsheetに以下コードを記載する。
//APIのベースURLを設定する
var API_BASE_URL = 'https://***.atlassian.net/wiki';
//tempaleteの情報を取得する
//templateの読み込み
function getTemplate(templateId){
//アクセスするAPIのURLを設定する
var api_url = API_BASE_URL + '/rest/api/template/' + templateId;
var response = UrlFetchApp.fetch(api_url).getContentText('UTF-8')
Logger.log(response);
//(1)
var response_str = JSON.stringify(response);
var content_json = JSON.parse(response_str);
var body = JSON.parse(content_json).body;
Logger.log(body.storage.value);
return body.storage.value; //(2)
}
このコードを実行すると、下図のようなレスポンスが返ってくる
{
"templateId":"テンプレートのID",
"name":"Meeting notes",
"description":"",
"labels":[],
"templateType":"page",
"body":
{"storage":
{"value":"<at:declarations /><ul><li><p><span>Tempalte</span></p></li>"}
}
}
(1)以降の処理は、responseからvalueの取り出しを行う処理。
(2)でのログの中身を確認してみると、以下のように表示される。
<at:declarations /><ul><li><p><span>Template</span></p></li>
これで、テンプレート情報の取得の完了。次以降、この得られた情報を使う。
その2に続く~