2017-07-20 65 views
0

我正在使用腳本從表單中的Google搜索控制檯提取數據。 我構建了一個側欄來選擇用戶想要分析其數據的網站。在應用程序腳本的網頁中使用.gs文件

爲此,我有一個函數可以列出所有網站鏈接到谷歌帳戶,但我有一個錯誤,當我嘗試在我的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> 
+0

如果你使用'如果(service.hasAccess)'? – Cooper

回答

0

我找到了解決方案 jquery在這裏沒用,你只需要使用google.script.run.yourfunction()在你的html工具條上運行你的gs函數

相關問題