Google Slides #Pages: Get all IDs

Google Slides: Get Slide Page Ids
Stores page object IDs of the specified slide.
Configs
  • U: Select HTTP_Authz Setting *
  • A: Set FILE-ID in Drive *#{EL}
  • B: Select STRING DATA for Page Object Ids (update)
Script (click to open)
// GraalJS Script (engine type: 2)

//////// START "main()" /////////////////////////////////////////////////////////////////

main();
function main(){ 

//// == Config Retrieving / 工程コンフィグの参照 ==
const strAuthzSetting     = configs.get      ( "AuthzConfU" );   /// REQUIRED
  engine.log( " AutomatedTask Config: Authz Setting: " + strAuthzSetting );
const strInputfileId      = configs.get      ( "StrConfA" );    /// REQUIRED
  if( strInputfileId    === "" ){
    throw new Error( "\n AutomatedTask ConfigError:" +
                     " Config {A1: FileID} is empty \n" );
  }

//// == Calculating / 演算 ==

/// Get FileTitle (and LastPageID)
/// Google Slides API
/// https://developers.google.com/slides/reference/rest/v1/presentations/get
// request0, prepare
let request0Uri = "https://slides.googleapis.com/v1/presentations/" + strInputfileId;
let request0    = httpClient.begin(); // HttpRequestWrapper
    request0    = request0.authSetting( strAuthzSetting ); // with "Authorization: Bearer XX"
    // https://questetra.zendesk.com/hc/en-us/articles/360024574471-R2300#HttpRequestWrapper

// request0, try
const response0 = request0.get( request0Uri ); // HttpResponseWrapper
engine.log( " AutomatedTask ApiRequest0 Start: " + request0Uri );
const response0Code = response0.getStatusCode() + "";
const response0Body = response0.getResponseAsString() + "";
engine.log( " AutomatedTask ApiResponse Status: " + response0Code );
if( response0Code !== "200"){
  throw new Error( "\n AutomatedTask UnexpectedResponseError: " +
                    response0Code + "\n" + response0Body + "\n" );
}

// response0, parse
/* 
engine.log( response0Body ); // debug
{
  "presentationId": "1MsdTWR_pN4FQTCCqUhC1F_JWWsagogISvPF9WqOmaq8",
  "pageSize": { ## },
  "slides": [
    {
      "objectId": "p",
      "pageElements": [ ## ],
      "slideProperties": { ## },
      "pageProperties": { ## }
    },
    {
      "objectId": "g6251321494_0_0",
      "pageElements": [ ## ],
      "slideProperties": { ## },
      "pageProperties": { ## }
    },
    {
      "objectId": "SLIDES_API66619114_0",
      "pageElements": [ ## ],
      "slideProperties": { ## },
      "pageProperties": { ## }
    }
  ],
  "title": "Revenue Report Example",
  "masters": [ ## ],
  "layouts": [ ## ],
  "locale": "ja",
  "revisionId": "bvHyj2SJ0wwg4A",
  "notesMaster": { ## }
}
*/
const response0Obj = JSON.parse( response0Body );
engine.log( " AutomatedTask ApiResponse File Title: " + response0Obj.title );

let objectIds = "";
for (i = 0; i < response0Obj.slides.length; i++) {
  objectIds += response0Obj.slides[i].objectId + "\n";
}

//engine.log(objectIds);
const strIds = configs.getObject( "StrConfB" );
if( strIds !== null ){
  engine.setData( strIds, objectIds );
}

} //////// END "main()" /////////////////////////////////////////////////////////////////


Download

2021-11-11 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/addons/google-slides-get-page-ids/
The Add-on import feature is available with Professional edition.
Freely modifiable JavaScript (ECMAScript) code. No warranty of any kind.

Capture

Appendix

Scroll to Top

Discover more from Questetra Support

Subscribe now to keep reading and get access to the full archive.

Continue reading