sudip-modi
sudip-modi

Reputation: 96

404 requested entity was not found error in appscript deployment api

Hello i am trying to deploy an appscript project using the rest api for appscript, it gives me a 404 error in response, my code looks like this

The google appscript api is enabled on my account and i am using a gcp standard project in my script.

function createScriptDeployment(){
  var token = ScriptApp.getOAuthToken();
  var endPoint = 'https://script.googleapis.com/v1/projects';
  var headers = {
    'accept': "application/json",
    'Authorization': 'Bearer ' + token
  }
  var body = {
  'versionNumber': 2,
  'manifestFileName': 'appsscript',
  'description': 'second deployment test'
  }
  var options = {
    'method': 'POST',
    'headers': headers,
    'contentType': 'application/json',
    'payload': JSON.stringify(body),
    'muteHttpExceptions': true
  }

  var url = endPoint+"/{scriptId}/deployments";
  var response = UrlFetchApp.fetch(url,options);
  Logger.log(response);
}

what could be the possible problem ?

any help is deeply appreciated

Upvotes: 0

Views: 462

Answers (1)

roma
roma

Reputation: 1580

In line

  var url = endPoint+"/{scriptId}/deployments";

replace {scriptId} with your script id from url

You can also use

var url = endPoint+'/' + ScriptApp.getScriptId() + '/deployments`;

If you deploy the same script you're running code at.

Edit:

Full script:

function createScriptDeployment(){
  var token = ScriptApp.getOAuthToken();
  var endPoint = 'https://script.googleapis.com/v1/projects';
  var headers = {
    'accept': "application/json",
    'Authorization': 'Bearer ' + token
  }
  var body = {
  'versionNumber': 2,
  'manifestFileName': 'appsscript',
  'description': 'second deployment test'
  }
  var options = {
    'method': 'POST',
    'headers': headers,
    'contentType': 'application/json',
    'payload': JSON.stringify(body),
    'muteHttpExceptions': true
  }

  var url = endPoint+"/"+ScriptApp.getScriptId()+"/deployments";
  var response = UrlFetchApp.fetch(url,options);
  Logger.log(response);
}

This code works perfectly for me.

Upvotes: 2

Related Questions