Create Box Webhook (folder)
Create a Box webhook to check events on the folder. You have to configure the OAuth2 settings in advance.
2017 © Questetra, Inc. (MIT License)
Configs
  • C1. OAuth Setting Name *
  • C2. Folder ID(Number) *
  • C3.Webhook URL(https) *
  • C4. Webhook Trigger (only one on each line) *
  • O1. Webhook ID Output(Data Type:Single-line string) *
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

1 thought on “Create Box Webhook (folder)”

  1. Pingback: Monitoring Uploads to Folders Using Box Webhook – Questetra Support

Comments are closed.

%d bloggers like this: