Отправка запроса GET с использованием SOAP и Javascript (API песочницы Google Adwords)

Я пытаюсь получить доступ к Google Adwords Sandbox API и не могу понять, что происходит.

Вот мой код:

        var wsUrl = "https://adwords-sandbox.google.com/api/adwords/cm/v201008/CampaignService";

        var soapRequest =
                '<soapenv:Envelope \
                xmlns:soapenv="http://schemax.xmlsoap.org/soap/envelope/" \
                xmlns="https://adwords.google.com/api/adwords/cm/v200906"> \
                <soapenv:Header> \
                <service>adwords</service> \
                <email>***@gmail.com</email> \
                <password>***</password> \
                <developerToken>***@gmail.com++USD</developerToken> \
                <useragent>MyApplication</useragent> \
                </soapenv:Header> \
                <soapenv:Body> \
                    <getClientAccounts/> \
                </soapenv:Body> \
                </soapenv:Envelope>';

        $.ajax({
            type: "GET",
            url: wsUrl,
            contentType: document.body,
            crossDomain: true,
            dataType: "jsonp",
            data: soapRequest,
            success: processSuccess,
            error: processError
        });

    });

    function processSuccess(data, status, req) {
        if (status == "success")
            console.log("success");
    }

    function processError(data, status, req) {
        console.log("status = " + status + " data= " + data );
    }

Я продолжаю получать 500 ошибок внутреннего сервера. Что я делаю неправильно?! На веб-сайте песочницы Google Adwords перечислены простые инструкции:

Чтобы создать учетную запись песочницы, отправьте запрос на получение версии CampaignService для песочницы, используя расположение WSDL и заголовки песочницы, как описано ниже. Этот первоначальный вызов песочницы создает учетную запись песочницы Центра клиентов вместе с пятью клиентскими учетными записями для указанного вами адреса электронной почты. Ваша учетная запись песочницы и ее клиентские учетные записи изначально пусты. http://code.google.com/apis/adwords/docs/sandbox.html

Помощь!


person jnfr    schedule 15.09.2011    source источник
comment
поместить содержимое заголовка Accept as application/soap+xml??   -  person Kris    schedule 15.09.2011
comment
Вы имеете в виду добавить <meta content-type="application/soap+xml"> к телу головы? это ничего не изменило к сожалению   -  person jnfr    schedule 15.09.2011


Ответы (1)


API AdWords — это API SOAP, поэтому отправка данных в формате JSONP не работает. Кроме того, $.ajax с cross-domain=true работает только для вариантов JSON или JSONP, все остальное будет остановлено междоменными политиками вашего браузера.

Вместо этого вы можете попробовать изучить клиентскую библиотеку JavaScript API AdWords: см. http://code.google.com/p/google-api-adwords-js/ для получения подробной информации.

Наш основной дискуссионный форум находится по адресу http://groups.google.com/group/adwords-api?pli=1, и я часто отвечаю там на вопросы разработчиков, поэтому, если у вас есть какие-либо дополнительные вопросы, не стесняйтесь задавать их, и я буду рад ответить на ваши вопросы.

Ура, Анаш П. Оммен

person Anash P. Oommen    schedule 10.12.2011