вторник, 25 ноября 2008 г.

Общие ошибки, приводящие к отказам SOAP (Часть I)

AdWords API базируется на службе SOAP и обращается к ней. В тоже время, иногда очень трудно отлаживать отказы SOAP. Было бы полезно описать наиболее распространенные ошибки, приводящие к отказам SOAP, с которыми сталкиваются разработчики на AdWords API. В дальнейшем будет опубликован ряд статей по этой теме. Надеюсь, что разработчикам это окажется полезным.

Неправильный идентификатор разработчика (Invalid Developer Token)

Наиболее распространенная ошибка, с которой сталкиваются разработчики в первые обращаясь к API «The developer token is invalid» («Неправильный идентификатор разработчика») – код ошибки 42. Есть несколько основных причин, благодаря которым Вы можете получить эту ошибку.
  • Если Вы впервые делаете обращение к API, то убедитесь, что обращение происходит в аккаунте рабочей среды (adwords.google.com), а не в песочнице AdWords API (sandbox.google.com). Образец кода API по умолчанию настроен для отправки запроса в аккаунте песочницы, а не рабочей среды. Таким образом, если Вы программируете, используя примеры кода, то, вероятнее всего, это стало причиной ошибки.
  • То же самое, если Вы используете клиентские библиотеки AdWords API, то по умолчанию они настроены для отправки запросов в песочнице AdWords API. Если Вы используете клиентские библиотеки Java, .NET или Ruby, убедитесь в том, что в секции аттестата пользователя конфигурационного файла (adwords.properties или app.config) не сипользуется ключ «alternateUrl». Для библиотеки Apility, убедитесь, что в файле settings.ini ключ Use_Sandbox установлен в «No». Для клиентской библиотеки Python, убедитесь, что Вы не инициализируете аргумент server="'https://sandbox.google.com'", при инициализации класса службы. Кроме того, каждая библиотека имеет соответствующий конструктор, который принимают аттестат в качестве параметра инициализации библиотеки. Убедитесь, что при инициализации Вы не передаете «alternateUrl». Наконец, некоторые библиотеки могут предоставлять вспомогательные функции (например, клиентская библиотека .NET предоставляет useSandbox()), которая позволяет Вам переключаться между рабочей средой и песочницей во время выполнения. Убедитесь, что эти функции не используются в Вашем коде.
  • Менее распространенной, но более очевидной, причиной этой ошибки, является то, что признак разработчика в Вашем коде является недействительным. Шансы этого случая небольшие, поскольку большинство разработчиков копируют свой признак из аккаунта MCC. Однако, это может произойти, если Вы по ошибке поменяли заявку и признак разработчика, или если Вы сбросили признак разработчика в своем аккаунте, но забыли обновить код. Неоднократная проверка кода, должна помочь Вам обнаружить место ошибки в коде.
В следующий раз мы изучим ошибки, связанные с ошибочными заголовками в запросах SOAP. Следите за дальнейшими сообщениями.


Автор: Anash Oommen

Комментариев нет: