Apps Scripts execution

Execute a function

 /** 
  
 * 
  
 Executes 
  
 an 
  
 Apps 
  
 Script 
  
 function 
  
 in 
  
 a 
  
 remote 
  
 Apps 
  
 Script 
 . 
  
 * 
  
 See 
 : 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 features 
 / 
 third 
 - 
 party 
 - 
 apis 
 #refresh_token_grant 
  
 * 
  
 for 
  
 details 
  
 on 
  
 configuring 
  
 this 
  
 script 
 . 
  
 * 
  
 * 
  
 NOTE 
 : 
  
 This 
  
 script 
  
 also 
  
 requires 
  
 the 
  
 OAuth2 
  
 library 
  
 to 
  
 be 
  
 pasted 
  
 at 
  
 the 
  
 end 
 , 
  
 * 
  
 as 
  
 obtained 
  
 from 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 
  
 */ 
 const 
  
 CLIENT_ID 
  
 = 
  
 'INSERT_CLIENT_ID' 
 ; 
 const 
  
 CLIENT_SECRET 
  
 = 
  
 'INSERT_CLIENT_SECRET' 
 ; 
 const 
  
 REFRESH_TOKEN 
  
 = 
  
 'INSERT_REFRESH_TOKEN' 
 ; 
 // 
  
 Enter 
  
 scopes 
  
 which 
  
 should 
  
 match 
  
 scopes 
  
 in 
  
 File 
 > 
 Project 
  
 properties 
 // 
  
 For 
  
 this 
  
 project 
 , 
  
 e 
 . 
 g 
 . 
 : 
  
 https 
 : 
 // 
 www 
 . 
 googleapis 
 . 
 com 
 / 
 auth 
 / 
 drive 
 const 
  
 SCOPES 
  
 = 
  
 'ENTER_SPACE_DELIMITED_SCOPES' 
 ; 
 // 
  
 Script 
  
 ID 
  
 taken 
  
 from 
  
 'File > Project Properties' 
 const 
  
 SCRIPT_ID 
  
 = 
  
 'ENTER_SCRIPT_ID' 
 ; 
 let 
  
 authUrlFetch 
 ; 
 // 
  
 Call 
  
 this 
  
 function 
  
 just 
  
 once 
 , 
  
 to 
  
 initialize 
  
 the 
  
 OAuth 
  
 client 
 . 
 function 
  
 initializeOAuthClient 
 () 
  
 { 
  
 if 
  
 ( 
 typeof 
  
 OAuth2 
  
 === 
  
 'undefined' 
 ) 
  
 { 
  
 const 
  
 libUrl 
  
 = 
  
 'https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library' 
 ; 
  
 throw 
  
 Error 
 ( 
 ` 
 OAuth2 
  
 library 
  
 not 
  
 found 
 . 
  
 Please 
  
 take 
  
 a 
  
 copy 
  
 of 
  
 the 
  
 OAuth2 
  
 ` 
  
 + 
  
 ` 
 library 
  
 from 
  
 $ 
 { 
 libUrl 
 } 
  
 and 
  
 append 
  
 to 
  
 the 
  
 bottom 
  
 of 
  
 this 
  
 script 
 . 
 ` 
 ); 
  
 } 
  
 const 
  
 tokenUrl 
  
 = 
  
 'https://accounts.google.com/o/oauth2/token' 
 ; 
  
 authUrlFetch 
  
 = 
  
 OAuth2 
 . 
 withRefreshToken 
 ( 
 tokenUrl 
 , 
  
 CLIENT_ID 
 , 
  
 CLIENT_SECRET 
 , 
  
 REFRESH_TOKEN 
 , 
  
 SCOPES 
 ); 
 } 
 /** 
  
 * 
  
 Execute 
  
 a 
  
 remote 
  
 function 
 . 
  
 * 
  
 @ 
 param 
  
 { 
 string 
 } 
  
 remoteFunctionName 
  
 The 
  
 name 
  
 of 
  
 the 
  
 function 
  
 to 
  
 execute 
 . 
  
 * 
  
 @ 
 param 
  
 { 
 Object 
 []} 
  
 functionParams 
  
 An 
  
 array 
  
 of 
  
 JSON 
  
 objects 
  
 to 
  
 pass 
  
 to 
  
 the 
  
 * 
  
 remote 
  
 function 
 . 
  
 * 
  
 @ 
 return 
  
 { 
 ? 
 Object 
 } 
  
 The 
  
 return 
  
 value 
  
 from 
  
 the 
  
 function 
 . 
  
 */ 
 function 
  
 executeRemoteFunction 
 ( 
 remoteFunctionName 
 , 
  
 functionParams 
 ) 
  
 { 
  
 const 
  
 apiParams 
  
 = 
  
 { 
  
 'function' 
 : 
  
 remoteFunctionName 
 , 
  
 'parameters' 
 : 
  
 functionParams 
  
 }; 
  
 const 
  
 httpOptions 
  
 = 
  
 { 
  
 method 
 : 
  
 'POST' 
 , 
  
 headers 
 : 
  
 { 
  
 'Content-Type' 
 : 
  
 'application/json' 
  
 }, 
  
 payload 
 : 
  
 JSON 
 . 
 stringify 
 ( 
 apiParams 
 ) 
  
 }; 
  
 const 
  
 url 
  
 = 
  
 ` 
 https 
 : 
 // 
 script 
 . 
 googleapis 
 . 
 com 
 / 
 v1 
 / 
 scripts 
 /$ 
 { 
 SCRIPT_ID 
 }: 
 run 
 ` 
 ; 
  
 const 
  
 response 
  
 = 
  
 authUrlFetch 
 . 
 fetch 
 ( 
 url 
 , 
  
 httpOptions 
 ); 
  
 const 
  
 data 
  
 = 
  
 JSON 
 . 
 parse 
 ( 
 response 
 . 
 getContentText 
 ()); 
  
 // 
  
 Retrieve 
  
 the 
  
 value 
  
 that 
  
 has 
  
 been 
  
 returned 
  
 from 
  
 the 
  
 execution 
 . 
  
 if 
  
 ( 
 data 
 . 
 error 
 ) 
  
 { 
  
 throw 
  
 Error 
 ( 
 ` 
 There 
  
 was 
  
 an 
  
 error 
 : 
  
 $ 
 { 
 response 
 . 
 getContentText 
 ()} 
 ` 
 ); 
  
 } 
  
 return 
  
 data 
 . 
 response 
 . 
 result 
 ; 
 } 
 // 
  
 Paste 
  
 in 
  
 OAuth2 
  
 library 
  
 here 
 , 
  
 from 
 : 
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 scripts 
 / 
 docs 
 / 
 examples 
 / 
 oauth20 
 - 
 library 
Create a Mobile Website
View Site in Mobile | Classic
Share by: