Api — Yandex API


Содержание

Начинаем изучать API Яндекс.Карт 2.1.

29 апреля 2014 года было объявлено, что новая версия API Яндекс.Карт 2.1 выходит из статуса беты и теперь Вы можете на неё безопасно переходить.

В нескольких ближайших заметках я планирую познакомить Вас с данной версией API.

Основные отличительные особенности JavaScript API Яндекс.Карт версии 2.1:

— новый адаптивный дизайн интерфейсов карты;

— мультимаршрутизатор — возможность построения всех возможных маршрутов вместо одного;

— модульная система API. Список всех модулей API приведен в справочнике.

— новый способ отображения объектов на карте, который позволяет создавать больше меток, чем в версии 2.0.

Подробную документацию по новой версии API Яндекс.Карт 2.1 можно прочитать здесь.

Давайте рассмотрим простейший пример создания карты с использованием API Яндекс.Карт 2.1.

Простейший пример создания карты с использованием API Яндекс.Карт 2.1.

Взаимодействие с API Директа. Получаем статистику.

Для автоматизации работы с Яндекс.Директ все сервисы используют доступ через API. Это позволяет получать доступ ко всему функционалу Директа, от получения статистики и управления ставками до создания рекламных кампаний с нуля. Для использования API Директа не обязательно быть профессиональным программистом, достаточно базовых знаний в PHP или Python. Также желательно разобраться, как работают инструмент cURL и формат обмена данными JSON (это не сложно). Наглядный пример взаимодействия с API Директа – «Директ Коммандер».

Чтобы можно было попробовать API на практике, Яндекс предоставляет тестовый доступ к песочнице, которая имитирует работающие рекламные кампании. На которых можно испытать работу своих скриптов.

Получить «боевой» доступ к реальным рекламным кампаниям не сложно, нужно заполнить заявку и приложить листинг работающего скрипта.

В этой статье я расскажу об использовании API Яндекс.Директ для получения статистики при помощи PHP, а также о регистрации приложения и получении тестового доступа.

С чего начать?

1. Регистрируем приложение

Чтобы зарегистрировать своё приложение для работы с API, войдите в свой аккаунт на Яндексе и перейдите по ссылке https://oauth.yandex.ru/, нажмите кнопку «Зарегистрировать новое приложение».


Вы попадёте на страницу «Создание приложения». Здесь нужно заполнить все поля, отмеченные звёздочкой (*), остальное не обязательно. В поле «Название приложения» пишем любое название, например «Первое тестовое приложение», далее в блоке «Платформы» отмечаем галкой «Веб-сервисы», для заполнения поля «Callback URI #1», необходимо кликнуть по ссылке «Подставить URL для разработки», в блоке «Доступы» выбираем «Яндекс.Директ» и ставим галку «Использование API Яндекс.Директа»

Пролистываем страницу до конца, нажимаем кнопку «Создать приложение». После этого откроется страница с названием и параметрами нового приложения. Сразу же скопируйте и сохраните ID нового приложения. Это потребуется в дальнейшем.

Поздравляю! Вы зарегистрировали своё первое приложение в Яндекс.OAuth!

OAuth-авторизация позволяет приложению работать с сервисами Яндекса от имени пользователя без авторизации по паролю (для этого используется специальный токен). Уровень доступа для приложения определяется пользователем.

2. Получаем доступ к API

Чтобы приложение могло использовать API Яндекс.Директа, ему необходимо получить доступ к этому инструменту.

Войдите в Яндекс.Директ под тем же логином, на который зарегистрировано приложение в OAuth. Пролистайте страницу до самого низа, найдите блок «Управление кампаниями», перейдите по ссылке API.

На открывшейся странице переходим по ссылке «Получить доступ к API»

Далее соглашаемся с Условиями использования. После этого откроется страница «Настройки API» c активной вкладкой «Параметры», где нужно заполнить «Координаты технического специалиста по работе с API Директа» — Контактное лицо и Эл. Почта. На вкладке «Мои приложения» можно увидеть, какие приложения имеют доступ к аккаунту Яндекс.Директ через API на текущий момент. Например, если вы использовали Директ.Коммандер для работы с рекламными кампаниями, то увидите его в списке этих приложений.

Чтобы открыть доступ нашему приложению к API, переходим на вкладку «Мои заявки» и создаём новую заявку на тестовый доступ.

В заявке необходимо заполнить все поля, отмеченные красной звёздочкой (*).

Выбираем, ранее зарегистрированное приложение из списка, указываем e-mail для службы поддержки Яндекса, в специфике работы можно выбрать Прямого рекламодателя, предназначением работы программы будет автоматизация регулярной работы с кампаниями в Директе. В качестве новых возможностей укажите «Ежедневно снимает новые показатели статистики», а ожидаемой датой разработки можно установить любой день.

Остаётся согласиться с условиями Пользовательского соглашения и отправить заявку. После одобрения доступа к API (это займёт менее часа), можно начинать разработку приложения. Статус заявки будет отображаться на вкладке «Мои приложения».

Цукерберг рекомендует:  Анимированные диаграммы при помощи Raphael

3. Получаем статистику Яндекс.Директ при помощи PHP

Для доступа к рекламным кампаниям через API потребуется токен разработчика. Чтобы его получить (только после одобрения заявки на доступ!) переходим по ссылке

Копируем ссылку, вставляем в адресную строку браузера, копируем ID приложения, он отображается на вкладке «Мои заявки». Переходим по созданной ссылке. Загрузится страница с подтверждением доступа, где необходимо нажать кнопку «Разрешить».

На следующем экране отобразится тот самый авторизационный токен, который нужно сохранить.

Для работы с тестовым доступом обязательно потребуется доступ к песочнице. Иначе, API Директа будет возвращать ошибку.


Переходим на вкладку «Песочница», и включаем её.

Теперь можно приступать к написанию кода для запросов к API Яндекс.Директ на PHP

Общаться с API будем через cURL на языке JSON-запросов. В версиях PHP от 5.2.0 функционал для обработки JSON уже вшит в ядро. Поэтому, если вы будете использовать более ранние версии для написания кода, тогда придётся подключать сторонние библиотеки, для обработки JSON.

В данном примере используется PHP 5.6

Создаём на сервере php-файл, и вставляем в него следующий код. За основу взят пример кода для получения статистики из официальной документации API Яндекс.Директ.

Статистика Яндекс.Директ через API

[
«SelectionCriteria» => [
«DateFrom» => «2020-06-01», // начальная дата в формате ГГГГ-ММ-ДД
«DateTo» => «2020-06-08» // конечная дата для выборки статистики
],
«FieldNames» => [«Date», «CampaignName», «LocationOfPresenceName», «Impressions», «Clicks», «Cost»],
«ReportName» => «НАЗВАНИЕ_ОТЧЕТА»,
«ReportType» => «CUSTOM_REPORT», // прописываем произвольный тип отчёта
«DateRangeType» => «CUSTOM_DATE», // произвольный период запроса
«Format» => «TSV», // формат ответа API
«IncludeVAT» => «NO»,
«IncludeDiscount» => «NO»
]
];
// Преобразование входных параметров запроса в формат JSON
$body = json_encode($params);

// Создание HTTP-заголовков запроса
$headers = array(
// OAuth-токен. Использование слова Bearer обязательно
«Authorization: Bearer $token»,
// Логин клиента рекламного агентства
«Client-Login: $clientLogin»,
// Язык ответных сообщений
«Accept-Language: ru»,
// Режим формирования отчета
«processingMode: auto»,
// Формат денежных значений в отчете
«returnMoneyInMicros: false»,
// Не выводить в отчете строку с названием отчета и диапазоном дат
«skipReportHeader: true»,
// Не выводить в отчете строку с названиями полей
// «skipColumnHeader: true»,
// Не выводить в отчете строку с количеством строк статистики
«skipReportSummary: true»
);

// Инициализация cURL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);

/*
Для полноценного использования протокола HTTPS можно включить проверку SSL-сертификата сервера API Директа.
Чтобы включить проверку, установите опцию CURLOPT_SSL_VERIFYPEER в true, а также раскомментируйте строку с опцией CURLOPT_CAINFO и укажите путь к локальной копии корневого SSL-сертификата.
*/
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// curl_setopt($curl, CURLOPT_CAINFO, getcwd().’\CA.pem’);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

// — Запуск цикла для выполнения запросов —
// Если получен HTTP-код 200, то выводится содержание отчета
// Если получен HTTP-код 201 или 202, выполняются повторные запросы
while (true) <

echo (‘Ошибка cURL: ‘.curl_errno($curl).’ — ‘.curl_error($curl));

// Разделение HTTP-заголовков и тела ответа
$responseHeadersSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$responseHeaders = substr($result, 0, $responseHeadersSize);
$responseBody = substr($result, $responseHeadersSize);

// Получение кода состояния HTTP
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

// Извлечение HTTP-заголовков ответа
// Идентификатор запроса
$request > // Рекомендуемый интервал в секундах для проверки готовности отчета
$retryIn = preg_match(‘/retryIn: (\d+)/’, $responseHeaders, $arr) ? $arr[1] : 60;

if ($httpCode == 400) <

echo «Параметры запроса указаны неверно или достигнут лимит отчетов в очереди
»;
echo «RequestId: <$requestId>
»;
echo «JSON-код запроса:
<$body>
»;
echo «JSON-код ответа сервера:
<$responseBody>
»;


> elseif ($httpCode == 200) <

echo «Отчет создан успешно
»;
echo «RequestId: <$requestId>
»;
echo $responseBody;

> elseif ($httpCode == 201) <

echo «Отчет успешно поставлен в очередь в режиме офлайн
»;
echo «Повторная отправка запроса через <$retryIn>секунд
»;
echo «RequestId: <$requestId>
»;

> elseif ($httpCode == 202) <

echo «Отчет формируется в режиме offline.
»;
echo «Повторная отправка запроса через <$retryIn>секунд
»;
echo «RequestId: <$requestId>
»;

> elseif ($httpCode == 500) <

echo «При формировании отчета произошла ошибка. Пожалуйста, попробуйте повторить запрос позднее
»;
echo «RequestId: <$requestId>
»;
echo «JSON-код ответа сервера:
<$responseBody>
»;

> elseif ($httpCode == 502) <

echo «Время формирования отчета превысило серверное ограничение.
»;
echo «Пожалуйста, попробуйте изменить параметры запроса — уменьшить период и количество запрашиваемых данных.
»;
echo «RequestId: <$requestId>
»;

echo «Произошла непредвиденная ошибка.
»;
echo «RequestId: <$requestId>
»;
echo «JSON-код запроса:
<$body>
»;
echo «JSON-код ответа сервера:
<$responseBody>
»;

Подробная инструкция по добавлению Яндекс.Карты на свой сайт

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

Сервисов, бесплатно предоставляющих карты, множество, но я бы хотел остановиться сегодня на Яндекс.Картах. Не буду рассматривать вариант создания карт через простой конструктор, а поскольку мы с вами в какой то степени вебмастера, расскажу, как внедрить карту от Яндекс.Карт с помощью API.

Добавление Яндекс.Карты на свой сайт

1. Итак, первое, что вам необходимо сделать – это перед закрывающим тегом вашего сайта подключить сам API Яндекс.Карт:

Цукерберг рекомендует:  Установка и работа с phpMyAdmin

Обратите внимание, что API_KEY в ссылке нужно заменить на свой, иначе карта будет серая (новые правила Яндекса). Получить его можете здесь. На момент написания статьи — получение бесплатное.

2. В нужное место на вашем сайте вставьте код, где будет отображаться карта:


3. В файл стилей (в самый конец) вставьте:

.ya_map – это стиль текста, который будет отображаться у подписи на карте, а
#map – размер карты.

4. И под конец одним из самых важных шагов будет добавление перед закрывающим тегом

Всякое разное про front-end

В данной статье я хочу начать цикл статей по работе с API Яндекс.Карт. Документация Яндекс.Карт достаточно полна, но степень разрозненности информации в ней высокая, при первом заходе в документацию без пол-литры не разобраться, и для решения какой-то проблемы можно потратить много времени на поиск по документации и в поисковике. Этот цикл статей будет рассказывать о практических решениях наиболее частых случаев использования API Яндекс.Карт последней, на момент написания статьи, версии 2.1.

При вёрстке сайта в контактной информации часто бывает необходимость вставки карты, на которой будет отмечено местоположение организации, для которой разрабатывается сайт. В самых простых случаях это может быть просто скриншот c онлайн-карт (или не онлайн):

Для вставки интерактивной карты может использоваться конструктор карт
https://tech.yandex.ru/maps/tools/constructor/:

В случае, если нам нужно более продвинутое использование карт (свои метки, программное перемещение карт и т.п.), то для этого надо использовать API Яндекс.Карт: https://tech.yandex.ru/maps/jsapi/. В качестве примера использования карт в статье будет рассмотрено создание карты с простым добавлением пользовательских метки и балуна.

Для начала подключим компоненты API:

Если разрабатывается какое-то большое приложение с использованием карт, то лучше подключать компоненты API определённой версии, чтобы при обновлении API на стороне Яндекса у нас ничего не сломалось на продакшине:

Карту необходимо будет расположить в каком-нибудь блоке, например в div#map. Далее карту необходимо создать в данном блоке (после срабатывания события готовности карты и DOM):

Здесь мы указываем:

  1. идентификатор блока «map», где у нас будет создана карта;
  2. center — центр карты с указанием ширины и долготы;
  3. zoom — коэффициент масштаба карты.

По умолчанию Яндекс.Карты создают много лишних элементов, которые в большинстве случаев не нужны на сайтах. В основном к элементам управления и к поведению карты достаточно применить 2 условия:

  1. из элементов карты присутствует только ползунок изменения масштаба;
  2. карта не должна менять масштаб скроллом мыши.

Для выполнения этих требований дополняем код:

Здесь мы отключили «scrollZoom» и добавили «zoomControl» с позиционированием от левого верхнего угла.


Теперь нужно добавить на карту метку, для статьи скачаём её картинку с http://medialoot.com/item/free-vector-map-location-pins/ и расположим в коде следующим образом:

Здесь мы объявляем переменную myPlacemark, в которой запишем маркер, в первом параметре ymaps.Placemark указываем координаты метки, а в третьем параметре:

  1. указываем в iconLayout, что будет использоваться пользовательское изображение метки;
  2. iconImageHref — путь к изображению;
  3. iconImageSize — указываем размеры изображения;
  4. iconImageOffset — указываем сдвиг от левого верхнего угла картинке к точке изображения, которая показываем на нужный нам объет. Нужно это чтобы при масштабировании карты положение метки не сбивалось. Почему смещение указывается в отрицательных значениях — одному Богу создателю API известно.

И через myMap.geoObjects.add() добавляем метку на карту.

А теперь сделаем баллун, который у нас будет показываться при клике на метку карты, макет баллуна и его содержимое возьмём с http://designdeck.co.uk/a/1241

Здесь мы:

  1. в balloonContent указываем контент, который будет отображаться при открытии балуна;
  2. balloonLayout — указываем, что в качестве макета баллуна будет использоваться пользовательское изображение;
  3. balloonContentSize и balloonImageSize — размеры контента и изображения соответственно;
  4. balloonImageHref — путь к изображению;
  5. balloonImageOffset — смещение относительно левого верхнего угла;
  6. balloonShadow — отключение тени у балуна (с пользовательскими изображениями ни на что не влияет).

Как получить ключ API яндекс карт?

Раньше использовал API карт без проблем, но когда для очередного проекта потребовались карты Яндекса, оказалось что теперь они работают как в гугле — через ключ api

Только проблема в том что после получения ключа в кабинете разработчика, все запросы идут как 400, а если не указывать ключ — 500

В поле url сайта пробовал не указывать ничего (так как localhost + тестовый домен + рабочий домен). Пробовал указать тестовый и рабочий, результат всегда одинаковый

При создании пишется что то про модерацию. Каждый ключ чтоль сотрудники яндекса вручную активируют или что это значит?

Поделитесь опытом как сейчас происходит получение ключа

Как получить API-ключ Яндекс #3074

Для того чтобы получить API-ключ от Яндекс сперва перейдите по ссылке https://developer.tech.yandex.ru/.

Шаг 1

На открывшейся странице нажмите на кнопку «Получить ключ».


Шаг 2

Введите название для ключа и выберите пункт «JavaScript API и HTTP Геокодер».

Шаг 3

В открывшемся окне:

  • Укажите свои контактные данные (ФИО, Email, телефон).
  • В вопросе «Ваш сервис удовлетворяет всем условиям бесплатного использования?» выберите «Да» (в случае если уверены в том, что количество запросов будет удовлетворять данным условиям; в противном случае необходимо выбрать «Нет» и затем подобрать подходящий платный тариф).
  • Укажите ссылку на Ваш сайт.
  • Кратко опишите, для чего Вам необходим ключ (например, «для размещения карт с контактными данными» или «для указания координат пунктов самовывоза» и т.д.).
  • Если Вы согласны с условиями пользовательского соглашения, отметьте соответствующую галочку.
  • Прочие поля заполните на свое усмотрение.
Цукерберг рекомендует:  Руководство по использованию технологии перетащи-и-брось на jQuery из 2.

В конце нажмите «Отправить».

Шаг 4

Вы попадете на страницу, где сможете скопировать созданный ключ.

  • Полученный ключ Вы сможете указать в соответствующем разделе Системы Управления — это позволит корректно работать яндекс-картам на Вашем сайте. Подробнее по ссылке.

delay-delo.com

Блог web-разработчика Алексея Ртищева

Форма поиска

  1. Главная
  2. Пример создания собственной карты на сайт. Яндекс.Карты API 2.0


Пример создания собственной карты на сайт. Яндекс.Карты API 2.0

Пример создания собственной Яндекс карты для сайта используя API 2.0.

Источником информации является документация Начало работы с API. Мой пример не сложный, основная идея была сделать карту в серых тонах со своим маркером.

Результат можно увидеть на изображении, а рабочий пример в конце страницы.

Итак, создание карты состоит из следующих этапов:

1. Подключение компонентов API 2.0 Яндекс.Карты.

3. Добавление произвольного маркера.

4. Добавление элементов управления.

5. Изменение цвета фона и элементов карты.

1. Подключение компонентов API Яндекс.Карты.

Для того, чтобы карта заработала, на сайте нужно подключить внешний JavaScript-файл на нужной странице сайта:

2. Инициализация карты.

Перед созданием карты нужны координаты. Их можно узнать, набрав адрес в сервисе Яндекс.Карты. Также стоит указать zoom — уровень масштабирования.

3. Добавление произвольного маркера.

Для создание своего маркера необходимо: указать координаты, на которых будет центрирован маркер; хинт — подсказку; путь к изображению и смещение, если необходимо передвинуть маркер относительно центра.

4. Элементы управления.

Для удобства, необходимо добавить элементы управления. В моём примере есть лишь несколько элементов, если вам нужно больше, стоит посмотреть документацию в разделе элементы управления:

5. Изменение цвета фона и элементов карты.


Градиент получить можно используя стили css. Таким образом можно указать любой оттенок)

Полный листинг примера:

Это всё! Надеюсь, мой небольшой пример ответит на пару вопросов и продемонстрирует часть возможностей API Яндекс.Карты.

Как получить доступ к API Яндекса

Клиенты часто спрашивают, как мы научили Foster находить ошибки в аккаунтах Яндекс.Директ. Все дело в том, что у нашего сервиса есть доступ к API Яндекса. Но, как известно, нельзя так просто взять и начать работу с API Яндекс.Директ. Разработчику необходимо пройти процедуру регистрации приложения. В этом посте я хочу пошагово рассказать, как мы регистрировали приложение для полноценной работы с Директом.

Кто может получить доступ к API?

Запрос к API выполняется от имени пользователя Директа — рекламодателя или рекламного агентства. В запросе необходимо указывать авторизационный токен — специальный код, разрешающий приложению операции с данными этого пользователя.

Создание нового приложения

В самом начале необходимо зарегистрировать новое приложение. Для этого переходим на страницу OAuth, заполняем необходимые поля, сохраняем. Этот шаг вполне прозрачен. Далее необходимо подать заявку на доступ к API.

На всякий случай напоминаю, что список всех поданных заявок можно посмотреть здесь.

Заявка на тестовый доступ

На первых этапах работы большинству разработчиков, скорее всего, будет достаточно заявки на ограниченный доступ к API Директа. Он включает в себя только доступ к «Песочнице». Получить подтвержденную заявку на тестовый доступ несложно:

  1. Кликаем по кнопке «Новая заявка».
  2. Выбираем «Тестовый доступ».
  3. Выбираем из списка свое приложение, созданное на первом шаге и заполняем необходимые поля (на этом этапе можно особо не сочинять, достаточно общих сведений).

С вероятностью в 98% ваша заявка будет одобрена.

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

Заявка на полный доступ

Однако для запуска полноценного сервиса тестового доступа мало. Для получения полного доступа заходим на страницу редактирования заявки и кликаем по ссылке «Оформить заявку на полный доступ». Далее нужно проявить все свои писательские скиллы при заполнении поля «Опишите схему взаимодействия вашего приложения с Директом».

Сразу скажу, что общие фразы Яндекс не промодерирует. Заявку отклонит, а в комментариях попросит более подробно описать работу системы.

Детальный перечень того, что нужно указать в описании: 1. Детальное описание системы. 2. Перечислить весь список методов API, к которым планируется обращение системы. 2.1. Указать, с какой периодичностью методы API будут использоваться. 2.2. Почему выбраны именно эти методы, какие задачи системы они решают. 2.3. Как обработаны ошибки, которые могут возникнуть при обращении к методам API. 3. Подробно описать, как система проверяет лимиты Директа (а их немало), и что происходит при превышении лимитов. Тут самое главное упомянуть, что мы сразу перестаем ломиться к API, как только вышли за грани дозволенного. Можно кинуть пару строк кода с обработкой исключений по превышению лимитов.

Список всех лимитов можно найти в справке Яндекса.

4. Желательно для убедительности загрузить несколько скриншотов интерфейса. Никто не требует интерфейса готовой системы, можно ограничиться схематическим расположением кнопок. Проделав весь путь, примерно через час после повторной подачи заявки мы увидели долгожданный статус «одобрено» для полного доступа.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих