簡體   English   中英

應用程序腳本中的Google Fusion Table REST Api與高級服務Fusion Table Services

[英]Google Fusion Table REST Api vs Advanced Services Fusion Table Services in app scripts

對於在應用程序腳本中訪問Google融合表API所使用的正確或推薦的機制,我感到非常困惑。 似乎有兩種帶有示例的方法,但是沒有討論哪個是首選還是為什么。 這些接口中的一個是較新的且更受歡迎的,而另一個正在消失嗎? 一個人過時或受到更多限制嗎?

方法1是此處描述的REST API

https://developers.google.com/fusiontables/docs/v2/sql-reference#Select

方法2是一組庫函數下面在Apps腳本/ Google Advanced Services下進行了描述:

https://developers.google.com/apps-script/advanced/fusion-tables

例如,使用REST api進行dql查詢,我們最終得到如下結果:

function runSQL(sql){
  var getDataURL = 'https://www.googleapis.com/fusiontables/v1/query?sql='+sql;
  var dataResponse = UrlFetchApp.fetch(getDataURL,getUrlFetchOptions()).getContentText();  
  return dataResponse;
}

使用高級API,我們使用類似以下內容的東西:

result = FusionTables.Query.sql(sql, { hdrs: false });

REST API似乎更難使用,需要預先配置復雜的oAuth和開發人員密鑰並將其編碼到應用程序中,而Advanced Services API會在幕后收集所有這些信息,並進行簡單的API調用,如我在此處所示。

我已經看到了許多使用上述每種方法的示例,但都沒有暗示為什么一個作者選擇了她的機制而不是另一個。

非常感謝您的幫助。

app-script中的服務尚在開發中,因此目前可能不完全支持API的全部功能。 正如你提到的,雖然,在REST API 服務的一大好處是,你不必處理OAuth流,因為你只需要啟用它在你的腳本(如說在這里 )。

Apps Script的“高級服務”實現仍然缺少一些高級功能(例如alt=media格式查詢或分段/可恢復的上載)-如果它確實具有這些功能,則缺少它們的極其基礎的文檔,以至於Apps Script編輯器自動完成功能不知道它們。 這些功能差距的折衷是您不需要處理密鑰,請求構建等。

因此,如果您正在執行簡單的sql select / importRows工作,那么Advanced Service應該能夠滿足您的幾乎所有需求。 如果您需要從FusionTables中刪除,則可能需要考慮設置REST API-因為刪除是每個查詢1條記錄,所以刪除的更好方法是改為“下載要保留的內容,然后重新上傳回來通過replaceRows 。”

(這對我replaceRows了一段時間,但最終我一直超出了Apps Script服務的限制,我開始從對replaceRows的調用中收到“ Empty Response錯誤。我的補救方法是通過REST API執行記錄維護任務,可以指定可恢復的上傳,超時等,而更多的“常規”互動是通過高級服務完成的。)

暫無
暫無

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

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