BoxのWebhookを作成(フォルダの監視)

フォルダ単位での監視を行うBoxのWebhookを作成します。事前にOAuth2の設定が必要です。

2018 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/box-webhook-create/

Configs
  • C1.OAuth設定名 *
  • C2.フォルダID(数字) *
  • C3.Webhook URL(https) *
  • C4.Webhookのトリガー(1行につき1つ) *
  • O1.Webhook IDの出力先(指定:単一行文字型データ) *
Script
main();
function main(){
  var OAuthName = String(configs.get("Oauth"))
  var id = String(configs.get("Id"));
  var url = String(configs.get("Url"));
  var trigger = String(configs.get("Trigger"));
  var triggerArray = trigger.split("\n");
  var resultData = configs.get("Result")
  check(id,url);
  //send post request
  sendRequest(id,url,OAuthName,triggerArray,resultData);
}

function check(id,url){
  if (id.search(/^[-]?[0-9]+$/) != 0){
   throw "non-numeric character existing in ID";
  }
  if(url.substr(0,8) != "https://"){
  throw "URL must begin with 'https://'.";
  }
}

function sendRequest (id,url,OAuthName,triggerArray,resultData){
  var json = JSON.stringify({"target": {"id": id, "type": "folder"}, "address": url, "triggers": triggerArray});
  var token;
  try{
    token = httpClient.getOAuth2Token(OAuthName)
  }catch(e){
    throw "Error has occurred with OAuth2 Setting named '" + OAuthName + "'.\n" + e;
  }
  var request = httpClient.begin()
    .bearer(token)
    .body(json,"application/json")
    .post("https://api.box.com/2.0/webhooks")
  //output log
  var text = request.getResponseAsString();
  engine.log(text);
  //check whether creating webhook completed
  if (request.getStatusCode() != 201){
    throw "Error Code:" + request.getStatusCode();
  }
  var result = JSON.parse(text);
  engine.setDataByNumber(resultData,result.id)
}

Download

Capture

Notes

%d人のブロガーが「いいね」をつけました。