Описание
Обработка представляет собой небольшой пример реализации взаимодействия платформы 1С:Предприятие 8 с сервисами Yandex на примере Yandex.Wordstat.
Функционал
Обработка имеет следующие возможности:
- Получение статистики запросов для ключевых фраз для введенного запроса.
- Получение статистики запросов для связанных ключевых фраз.
- Выполение авторизации на сервисах Yandex с помощью токенов доступа. Для получения токена нужно ввести идентификатор приложения, которое нужно зарегистрировать по ссылке.
Особенности
Взаимодействие с сервисом Yandex.Wordstat осуществляется по средствам выполнения POST-запросов, данные в теле которых передаются в формате JSON. Подробнее о вызываемых в примере методах Вы можете прочитать в официальной документации API Yandex.Direct, который и предоставляет возможность работы с отчетами Yandex.Wordstat.
При решении практической задачи возникла трудность с кодировкой для кирилицы. Если в теле запроса содержались символы кирилицы, то появлалась следующая ошибка:
Самостоятельно решить проблему не удалось. Пошел другим путем — создал утилиту на .NET Framework 4.5 для отправки POST-запросов. Больше проблем с кирилицей не возникало. В обработке есть два режима отправки POST-запросов: собственными средствами платформы и с помощью утилиты (не забудьте на машине установить .NET Framework 4.5).
Если кто-то из читателей поможет решить проблему с кодировкой, то буду премного благодарен!
По теме
Если интересно, то в статье «GET и POST-запросы из 1С:Предприятия 8« описал использование POST-запросов как в формате JSON, так и с использование SOAP. Там же есть тестовая конфигурация со всеми примерами.
Мой блог: www.develplatform.com
Для интернет-предпринимателя то что нужно)
Что-то не получается у меня запустить. Вроде зарегистрировал, но потом при подключении пишет, что нет Callback URL. А где я его возьму? Автор, хотя бы в общих чертах написал, как регистрировать это приложение. Я, например с API Яндекса вообще не сталкивался, и как проходит регистрация плохо представляю. Если не затруднит, автор, набросайте маленький мануальчик. Очень хочется посмотреть данную разработку.
(2) chingiz001, посмотрите официальную документацию от Yandex. Нет смысла писать то же самое:инструкция
За ссылку спасибо, что-то я сам не нашел, сорри. Потестим.
Зарегистрировал приложение.
Прошел авторизацию — пишет -токен досутупа успешно получен.
Нажимаю Получить статистику — выдает ошибку «Ошибка авторизации сервисами Yandex. Код ошибки: 53. Описание: Authorization error».
Помогите решить
(5) infantik, нужно зарегистрировать заявку на доступ к API по адресуhttps://oauth.yandex.ru
Из описания API:
При вызове метода расходуются баллы (см. Ограничения на использование). Если баллов недостаточно, возвращается сообщение об ошибке 152.
Для одного пользователя на сервере хранится не более пяти отчетов (по всем кампаниям). При попытке сформировать шестой отчет возвращается сообщение об ошибке с кодом 31. Отчеты хранятся на сервере в течение пяти часов, а затем автоматически удаляются.
Получается, что пользоваться данным API для практических целей не возможно? Или каким-то образом можно получить у Яндекса «бонусные» балы?
Похожая проблема с кодировкой была при работе с Яндекс картами. Решил её в лоб — посимвольным переводом кириллицы в «%-кодировку».
(7) Zamza, на практике пользоваться можно, но не для масштабных задач с проверкой 1 000 000 ключевых слов.
Например, делал подсистему управления рекламными кампаниями. Там был сбор статистики по ключевым словам и ограничение не было критичным.
Про бонусные баллы мне не известно) Но думаю обойти ограничение возможно. Самый простой вариант раньше был использование разных учетных записей.
А можете показать свое решение? В моем случае это не получилось сделать, т.к. Yandex ругался на некорректный запрос. Хочу посмотреть может что упустил.
Скачал обработку. Попытался зарегистрироваться в Яндексе. Оказалось, что сейчас если регистрироваться по простому, то дают доступ только в песочницу. Основное ограничение — в песочнице всё что возвращает API — случайные числа.
Для полного доступа запрашивают:
Но если ответите на эти вопросы, то доступ дают.
При попытке открыть обработку, выходит ошибка «Обращение к процедуре как к функции (ЗаписатьJSON). Что можно предпринять?
(10) Обработку уже не планирую дорарабывать.
Ошибка связана с тем, что в новых версия платформы 1С появилась собственная функция для работы с JSON с тем же именем, как и в обработке.
Нужно адаптировать для новой платформы.
Изначально обработка создавалась как пример для разработчиков, для использования в работе она малопригодна.
Два дня убил на поиск проблемы с кодировкой!
Нужно из файла убрать маркеры BOM.
Вот решение:
//ТекстовыйФайл = Новый ТекстовыйДокумент;
//ТекстовыйФайл.УстановитьТекст(СтрокаJSON);
//ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.ANSI);
ЗаписьТекста = Новый ЗаписьТекста(ФайлЗапроса, КодировкаТекста.ANSI);
ЗаписьТекста.Закрыть();
ЗаписьТекста = Новый ЗаписьТекста(ФайлЗапроса,,, Истина, Символы.ПС);
ЗаписьТекста.Записать(СтрокаJSON);
ЗаписьТекста.Закрыть();
Прошу плюсовать. 🙂
(12) у меня аж флэшбэк случился 🙂
Спасибо за решение 🙂