2016-09-29 61 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问题,但这只是一个猜测。 –