2016-09-29 73 views
1

我正在使用USPS API進行地址驗證。出於我的目的,我在Google表格中創建了一個工具來自動執行查找過程。輸入或粘貼FirmName /地址1/1地址/城市/國家在相應的單元格,和公式打造,看起來像這樣的請求:驗證是否(不再是)有效的API名稱

=IMPORTDATA(http://production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=<AddressValidateRequest USERID="XXXXXXXXX"><Address ID="0"><FirmName></FirmName><Address1></Address1><Address2>501 MAIN ST</Address2><City>WABASH</City><State>IN</State><Zip5></Zip5><Zip4></Zip4></Address></AddressValidateRequest>) 

這約4周偉大的工作。後來有一天早上我打開表,並代替正常反應,輸出讀

<Error><Number>80040B1A</Number><Description>API Authorization failure. Verify is not a valid API name for this protocol.</Description><Source>USPSCOM::DoAuth</Source></Error> 

只要XML格式正確,這是我得到的唯一回應。如果我將我的用戶名更改爲某個虛假號碼,則不會出現相關錯誤。我也嘗試了其他的API,並且都給出了相同的API授權失敗。

如果我粘貼XML請求到瀏覽器,它提供了一個有效的響應,所以我知道我的API密鑰仍然是工作。我曾與幾位正在使用自己的API密鑰的同事共享我的Google工作表。他們遇到了同樣的錯誤。

我一直在與USPS支持的聯繫,雖然他們都不太主動,他們並沒有表示他們已經訪問其API阻止谷歌服務器。我也在Google表格中「報告了一個問題」,但我不希望聽到Google的任何內容。

如果我不能得到它擺在首位的工作,這將是一兩件事。這讓我難倒了好幾周。有任何想法嗎?

+0

IMPORTDATA的格式錯誤。 URL應該用引號括起來,另一方面它應該是一個有效的URL。請參閱[IMPORTDATA](https://support.google.com/docs/answer/3093335?hl=zh-CN) –

回答

0

因爲它好工作了一段時間,和API調用仍然工作獨立於谷歌片,你已經嘗試過其他的API有類似的結果,看來問題很可能是谷歌片有關。

我發現唯一的問題是,URL不會包含在引號。從中提取.csv或.tsv格式的數據的URL,包括協議(例如 -

語法 IMPORTDATA(URL)

URL:主圈套在該摘錄從IMPORTDATA docs page中陳述HTTP://)。

url的值必須用引號引起來或是對包含適當文本的單元格的引用。

備註 單個電子表格最多支持50個IMPORTDATA調用。

(你可以找到在help forums其它有趣的信息和數據。)

我建議你構建一個獨立的單元格中的網址,因此您可以在現場數據帶來的諸如城市和國家。我不認爲這會要求你使用引號,這可能是你需要的,因爲你的URL構造有引用包含的部分。

然後,通過使用細胞參考的信息來IMPORTDATA。


(全面披露:我爲SmartyStreets,額外的功能和正常運行時間保證的地址驗證供應商合作。)

+0

是的,我正在構建具有將URL文本與單元格數據組合在一起的級聯公式的URL。 IMPORTDATA停止工作幾個星期,然後再次開始工作。我同意這很可能是Google表格問題,而不是API問題,但這只是一個猜測。 –