2016-09-29 3 views
1

Я использую API USPS для проверки адреса. В моих целях я создал инструмент в Google Таблицах для автоматизации процесса поиска. Введите или вставьте FirmName/ADDRESS1/ADDRESS2/город/штат в соответствующих клетках и формулы построить запрос, который выглядит следующим образом:Verify is (no longer) допустимое имя 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 все еще работает. Я поделился своим листом Google несколькими сотрудниками, которые использовали свои собственные ключи API. Они совершили ту же ошибку.

Я поддерживал связь с USPS Support, и хотя они не очень ожидаются, они не указали, что они заблокировали серверы Google от доступа к их API. Я также сообщил о проблеме в Google Таблицах, но я не ожидаю услышать что-либо от Google.

Если бы я не мог заставить его работать в первую очередь, это было бы одно. Это - то, что это работало отлично в течение недель, которые меня смутили. Есть идеи?

+0

Формат IMPORTDATA неверен. URL-адрес должен быть заключен в кавычки, с другой стороны, он должен быть действительным URL-адресом. См. [IMPORTDATA] (https://support.google.com/docs/answer/3093335?hl=ru) –

ответ

0

Поскольку это работало нормально какое-то время, и вызов API по-прежнему работает независимо от листа Google, и вы пробовали другие API с похожими результатами, похоже, проблема связана, вероятно, с Google-листом.

Единственная проблема, которую я замечаю, заключается в том, что URL-адрес не заключен в кавычки. Основные ловушки изложены в этом отрывке из IMPORTDATA docs page:

Синтаксис IMPORTDATA (URL)

URL - URL, с которого для извлечения данных .csv или .tsv формата, в том числе протокола (например, Http: //).

Значение для URL должно быть заключено в кавычки или быть ссылкой на ячейку, содержащую соответствующий текст.

Примечания Не более 50 вызовов IMPORTDATA поддерживаются в одной электронной таблице.

(Вы можете найти другую интересную информацию и данные в help forums.)

Я предлагаю вам построить URL в отдельную ячейку, так что вы можете принести в данных местах, таких как города и государства. Я не думаю, что вам понадобится использовать кавычки, которые могут потребоваться, так как ваша структура URL содержит части, заключенные в цитаты.

Затем передайте информацию IMPORTDATA с использованием ссылки на ячейку.


(Полное раскрытие: я работаю на SmartyStreets, адрес поставщика проверки с дополнительными функциями и безотказной работы гарантий.)

+0

Да, я создавал URL-адрес с формулой конкатенации, которая комбинировала текст URL с данными ячейки. IMPORTDATA перестала работать в течение пары недель, а затем снова начала работать. Я согласен с тем, что это скорее всего проблема с Google Таблицами, а не проблема API, хотя это просто предположение. –

Смежные вопросы