Javascript 在应用程序脚本中的网页中使用.gs文件

Javascript 在应用程序脚本中的网页中使用.gs文件,javascript,jquery,html,google-apps-script,Javascript,Jquery,Html,Google Apps Script,我正在使用一个脚本从谷歌搜索控制台中提取数据。 我建立了一个侧边栏来选择用户想要在哪个网站上分析他的数据 为此,我有一个功能,可以列出所有网站链接到谷歌帐户,但我有一个错误,当我试图在我的html文件中执行此功能。 我使用withSuccessHandler(function)方法,该方法设置一个回调函数,以便在服务器端函数成功返回时运行。(我有一个OAuth2.0.gs文件,其中是我的getService函数。 错误为“service.hasAccess不是listAccountSites的函

我正在使用一个脚本从谷歌搜索控制台中提取数据。 我建立了一个侧边栏来选择用户想要在哪个网站上分析他的数据

为此,我有一个功能,可以列出所有网站链接到谷歌帐户,但我有一个错误,当我试图在我的html文件中执行此功能。 我使用withSuccessHandler(function)方法,该方法设置一个回调函数,以便在服务器端函数成功返回时运行。(我有一个OAuth2.0.gs文件,其中是我的getService函数。 错误为“service.hasAccess不是listAccountSites的函数”,其中listAccountSites是我的函数。以下是我的html文件的摘录:

<script src="OAuth2.0.gs"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(function() {
  var liste = google.script.run.withSuccessHandler(listAccountSites)
      .getService();
   console.log(liste);
});

function listAccountSites(service){

  if (service.hasAccess()) {

    var apiURL = "https://www.googleapis.com/webmasters/v3/sites";

    var headers = {
      "Authorization": "Bearer " + getService().getAccessToken()
    };

    var options = {
      "headers": headers,
      "method" : "GET",
      "muteHttpExceptions": true
    };

    var response = UrlFetchApp.fetch(apiURL, options);

    var json = JSON.parse(response.getContentText());
    Logger.log(json)
    console.log('if')
    var URLs = []
    for (var i in json.siteEntry) {
      URLs.push([json.siteEntry[i].siteUrl, json.siteEntry[i].permissionLevel]); 
    }
    /*
    newdoc.getRange(1,1).setValue('Sites');
    newdoc.getRange(1,3).setValue('URL du site à analyser');
    newdoc.getRange(2,1,URLs.length,1).setValues(URLs);
    */
    console.log(URLs);
  } else {
    console.log('else')
    var authorizationUrl = service.getAuthorizationUrl();
    Logger.log('Open the following URL and re-run the script: %s', authorizationUrl);
    Browser.msgBox('Open the following URL and re-run the script: ' + authorizationUrl);
  }

      return URLs;
    }

</script>

$(函数(){
var liste=google.script.run.withSuccessHandler(listAccountSites)
.getService();
console.log(liste);
});
功能列表帐户站点(服务){
if(service.hasAccess()){
var apirl=”https://www.googleapis.com/webmasters/v3/sites";
变量头={
“授权”:“承载者”+getService().getAccessToken()
};
变量选项={
“标题”:标题,
“方法”:“获取”,
“muteHttpExceptions”:true
};
var response=UrlFetchApp.fetch(apirl,选项);
var json=json.parse(response.getContentText());
Logger.log(json)
console.log('if')
var url=[]
for(json.siteEntry中的变量i){
push([json.siteEntry[i].siteUrl,json.siteEntry[i].permissionLevel]);
}
/*
newdoc.getRange(1,1).setValue('Sites');
getRange(1,3).setValue('URL du siteáanalyzer');
newdoc.getRange(2,1,URL.length,1).setValue(URL);
*/
日志(URL);
}否则{
console.log('else')
var authorizationUrl=service.getAuthorizationUrl();
Logger.log('打开以下URL并重新运行脚本:%s',authorizationUrl);
msgBox('打开以下URL并重新运行脚本:'+authorizationUrl);
}
返回URL;
}
我找到了解决方案。
Jquery在这里是无用的,您只需要使用google.script.run.yourfunction()在html侧栏上运行gs.function。

如果使用
if(service.hasAccess)
,错误会消失吗?