簡體   English   中英

如何在Google應用程序腳本中運行觸發器而無需每次都重新認證

[英]How to run the triggers in Google app script without reauth each time

您好,我有一個不是Web應用程序的腳本,但它是一個基於API的腳本,它從json提取數據並將它們作為post發送給Blogger,並且我正在使用基於時間的觸發器來運行此功能,但是在運行一些之后,我需要打開身份驗證網址並獲得驗證..如何避免這種情況並繼續運行觸發器,這是身份驗證代碼

var service = getBloggerService_();

if (service.hasAccess()) {
var api ='https://www.googleapis.com/blogger/v3/blogs/' + blogId + '/posts/';

var headers = {
  'Authorization': 'Bearer ' + getBloggerService_().getAccessToken()
};

var options = {
  'headers': headers,
  'method' : 'post',
  'contentType': 'application/json',
  'payload': body,
  'muteHttpExceptions': false
};

try {
  var response = UrlFetchApp.fetch(api, options);

  var responseCode = response.getResponseCode();
  Logger.log(responseCode);
  var json = JSON.parse(response.getContentText());
  Logger.log(json);
}
catch(err) {
  Logger.log(err); // error with url fetch call
}
  }
else {
 var  authorizationUrll=service.getAuthorizationUrl();
 Logger.log('Open the following URL and 
re-run the script: %s',
    authorizationUrl);

}}

解:

  • 手動將Blogger范圍添加到appsscript.json中。

     { ... "oauthScopes": [ "https://www.googleapis.com/auth/blogger", "https://www.googleapis.com/auth/script.external_request" ], ... } 
  • 然后,您可以使用:

     var headers = { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(); //contains Blogger scope always }; 
  • 您不需要使用service或任何其他庫。

參考文獻:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM