2014-01-30 55 views
0

我有一項任務,可以編寫一個GAS(Google應用程序腳本),可以從API competition.com獲取任何網站的uv(唯一訪問者)。我在我的鏈接中硬編碼了域名,但它需要它適用於任何域用戶需要的。我是初學者,請幫助我解決這個問題。以下是我所做的:API的氣代碼

function fetch() {  
    var url = 'https://apps.compete.com/sites/abcdef.com/trended/search/?apikey=myapikey&metrics=uv'; 

    var response= UrlFetchApp.fetch(url);// Recieves the response corresponding to above request. 

    Logger.log('\n\nThe number of unique visitors correponding to months is : \n\n'+response); 
} 

回答

0

您的問題在這裏代表您如何首先詢問用戶輸入,然後運行您的函數?

這可以通過多種方式來完成,但是我會給你了UiApp選項:

function doGet() { 
    var app = UiApp.createApplication(); 
    var panel = app.createHorizontalPanel(); 
    var chooseURLLabel = app.createLabel("Input a URL"); 
    var URLValue = app.createTextBox().setId("idURL").setName("idURL"); 
    var visitHandler = app.createServerHandler('getVisitorsFunction').addCallbackElement(panel); 
    var getVisitors = app.createButton("Get visitors").addClickHandler(visitHandler); 
    panel 
    .add(chooseURLLabel) 
    .add(URLValue) 
    .add(getVisitors); 
    app.add(panel); 
    return app; 
} 
function getVisitorsFunction(e){ 
var app = UiApp.getActiveApplication(); 
var visitors = fetch(e.parameter.idURL); 
app.add(app.createLabel(visitors)); 
return app 
} 
function fetch(url) {  
    var response= UrlFetchApp.fetch(url); 

    return "The number of unique visitors correponding to months is : "+response 
} 
+0

先生,當我運行函數的doGet(),我不能看到電子表格那邊的水平面板?你能告訴我下一步該怎麼做嗎? –

+0

所以你想從電子表格輸入?然後它更容易一點。首先,確保腳本綁定到該電子表格。您可以通過打開電子表格,單擊工具和腳本編輯器來檢查 - 如果您在此處看到此腳本,則可以繼續前進。正如你所看到的,獲取函數需要輸入URL,這意味着你可以轉到你的電子表格,鍵入'= fetch(b1)'或任何其他單元格,並在該單元格中粘貼url。它會檢索你的值。 – Adelin

+0

是的,這兩種方法都有效!這是一個很大的幫助,謝謝 –