Все потоки
Поиск
Написать публикацию
Обновить
5.86

Яндекс API *

Пишем под сервисы Яндекса

Сначала показывать
Порог рейтинга
Уровень сложности

И снова Яндекс.Погода для сайта: время суток, направление ветра и прочие параметры

Время на прочтение6 мин
Количество просмотров60K
В продолжении поста о погоде «Яндекс.Погода для сайта в деталях». Прочитав данный пост, я пришел к выводу, что тема еще актуальна, и хотел бы дополнить выше упомянутую статью своими наработками.

Читать дальше →

Реализация и тестирование Qt C++ клиента сетевого сервиса с асинхронным интерфейсом на примере Yandex Dictionary Api

Время на прочтение8 мин
Количество просмотров9.8K
Есть у меня один проект долгострой, в котором использую Yandex Dictionary Api. В процессе разработки решил поделиться опытом создания асинхронного интерфейса к интернет-сервису.

Если у вас есть интерес, как реализовать такой клиент с помощью Qt C++, то этот пост для вас.

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

Пример программы


Программа посылает на сервер Yandex Dictioanary Api запросы на перевод слов и затем, по мере поступления ответов от сервиса, выводит их на экран.

#include "Precompiled.h"
#include <QtYandexApi/QtYandexApi.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QtYandexDictionary yandexDictionary(QtYandexApi::getYandexKeyFromFile("dictKey"));
    QObject::connect(&yandexDictionary, &QtYandexDictionary::translated,
                     [](const QtYaWordTranslation& wordTranslation)
    {
        if (wordTranslation.isError())
            qDebug() << wordTranslation.errorString();
        else {
            QtYaWord wordForTranslation = wordTranslation.wordForTranslation();
            QtYaTranslatedWord translatedWord = wordTranslation.translatedWord();
            qDebug() << "\n***************";
            qDebug() << "Word: " << wordForTranslation.wordName();
            qDebug() << "Direction: " << wordForTranslation.fromLanguage() << "-" << wordForTranslation.toLanguage();
            qDebug() << "Main translation: " << translatedWord.mainTranslation();
            qDebug() << "Synonyms: " << translatedWord.synonyms();
            qDebug() << "Examples: ";
            for (const auto& example : translatedWord.examples()) {
                qDebug() << example.first << "-" << example.second;
            }
        }
    });

    QStringList russianWords, englishWords;
    russianWords << "дом" << "время" << "легенда" << "ключ" << "клавиатура" << "монитор" << "случай" << "один" << "два" << "три" << "четыре" << "пять" << "шесть";
    englishWords << "home" << "time" << "legend" << "key" << "keyboard" << "monitor" << "infection" << "one" << "two" << "three" << "four" << "five" << "success";

    for (const QString& word : russianWords) {
        yandexDictionary.translate(QtYaWord(word, "ru", "en"));
    }
    for (const QString& word : englishWords) {
        yandexDictionary.translate(QtYaWord(word, "en", "ru"));
    }

    return a.exec();
}


Читать дальше →

Про QML и новое REST API Яндекс.Диска

Время на прочтение7 мин
Количество просмотров16K
Доброго времени суток, друзья!
В последнее время на хабре совсем перестали появляться статьи на тему QtQuick\QML Про Ubuntu SDK (основанном на QtQuick) и вовсе тишина, а ведь в настоящий момент это основной инструментарий, предлагаемый для разработки приложений под Ubuntu (ни много ни мало самый популярный Linux-дистрибутив). Захотелось в меру своих возможностей исправить эту ситуацию с помощью написания данной статьи! Объять необъятное пытаться не стоит, поэтому начну, пожалуй, с повествования о том, как мне удалось заменить большой объем кода на C++ кодом на QML (в приложении под Ubuntu SDK). Если вам стало интересно, а может быть еще и непонятно, причем тут Яндекс.Диск, то прошу под кат!
image
Читать дальше →

Новая Яндекс.Метрика через API: конструктор отчётов и поддержка API других стандартов

Время на прочтение4 мин
Количество просмотров24K
Яндекс.Метрика полностью перестроила свой API. Теперь можно не ограничиваться запросом стандартных наборов отчетов в поисках чего-то полезного, а сразу задавать конкретный вопрос, ответ на который вам нужен.

Первый API Метрики появился через некоторое время после веб-интерфейса и был дополнительной функциональностью к нему. В нём были доступны базовые функции Метрики: набор основных отчётов по принципу один метод = один отчёт. Инструмент полезный, но негибкий, поскольку вместо точных ответов на ваши вопросы предлагал фиксированный набор столбцов в отчете без возможности сразу отфильтровать нужное.



Сейчас мы изменили свой подход, и работа Метрики полностью базируется на новом API. То есть он стал основой сервиса, а не каким-то дополнительным инструментом к нему. API работает по другим принципам: в нём доступен набор измерений и метрик, из которых можно построить любой отчёт по сайту, даже если его нет в веб-интерфейсе. Так что вы теперь сможете не просто изучать данные в отчетах, но и создавать свои аналитические решения. Кроме того, мы поддержали совместимость с разными стандартами API, в том числе Google Analytics.

Так как работа сервиса Яндекс.Метрика полностью базируется на новом API, в нём сразу появляются все новые инструменты и функции сервиса. Например, сегментация данных, которая через некоторое время станет доступна пользователям веб-интерфейса с запуском Метрики 2.0.
Что умеет новый API, и чем он полезен владельцу сайта

Новый REST API Яндекс.Диска и Полигон. А также зачем Диску ещё один API и как мы его делали

Время на прочтение4 мин
Количество просмотров54K
Многие знают, что у Диска уже достаточно давно есть API на WebDAV. Он достаточно узко заточен под работу с файловой структурой, а у его реализации на разных платформах часто бывают некритичные, но не очень приятные недостатки. Поэтому в дополнение к WebDAV мы запускаем REST API, который позволит разработчикам делать всё то же и немного больше.

Например, при использовании нового API все приложения, которым просто нужно хранить свои файлы в Диске, смогут получать доступ только к своей папке, лежащей в Диске пользователя в папке «Приложения». В WebDAV API сервису для этого придётся получать у пользователя разрешение на запись/чтение всего Диска, а не только конкретной папки.



В этом посте я хочу рассказывать не о структуре или об операциях, которые умеет выполнять наш API — там всё довольно очевидно — а сразу перейду к интересным вещам: что такое Hypermedia и Machine-readable and Self-describing API, и как мы все это реализовали.
Читать дальше →

Распознавание речи в Asterisk с использованием Yandex SpeechKit HTTP API

Время на прочтение2 мин
Количество просмотров34K


Статья написана по мотивам Синтез и распознавание речи от Google для Asterisk, с не большими изменениями. Для распознавания речи используется платформа Yandex SpeechKit HTTP API.
Читать дальше →

Вредные советы от создателей API Яндекс.Карт. Как сделать так, чтобы всё было плохо

Время на прочтение8 мин
Количество просмотров102K
Если гонится за вами
Слишком много человек,
Расспросите их подробно
Чем они огорчены?
Постарайтесь всех утешить.
Дайте каждому совет,
Но снижать при этом скорость
Совершенно ни к чему.
Г. Остер

Сегодня чудесный весенний день. И не только потому что он весенний и очень скоро кому-то придется ехать на дачу копать картошку. А потому что сегодня версия 2.1 API Яндекс.Карт перестает быть beta-версией и становится основной.

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

Разработка API – очень специфичная область программирования. На любую задумку дизайнера и разработчика накладываются потребности и умения пользователей API. Основной фидбек, который мы получаем – это сообщения пользователей в нашем клубе. Туда присылают примеры сайтов с Яндекс.Картами, багрепорты и рекомендации по улучшению нашего продукта. Мы видим, как API смотрится в боевых условиях, и мотаем на ус.

Некоторые вещи часто делают неправильно. Сегодня я хочу о них рассказать. Все советы, которые вы прочтете — вредные. Если вы поймете, что соблюдаете некоторые из рекомендаций этой статьи, ничего страшного – никогда не поздно сделать ваш проект немного лучше. Итак, Irony mode ON.
Читать дальше →

Корректный YML для Яндекс.Маркета. Взгляд программиста

Время на прочтение5 мин
Количество просмотров88K

Многие интернет-магазины попадают в Яндекс.Маркет, не все там остаются надолго. Одно из условий присутствия в ЯМ-е – наличие корректного прайса в специальном формате YML.

Проверка такого прайса на ошибки и устранение таковых – целая история. Пока он не будет сформирован по всем правилам – вход в сие царство демпинга заказан. А при доведении документа до ума можно пережить немало незабываемых эмоций.

Данная статья – попытка обобщить те ошибки, с которыми сталкиваются программисты, впервые создающие инструменты (будь то автономный скрипт или плагин для CMS) для генерации YML-файла. Тем, кто с этим чудным форматом имел дело раньше, статья уже будет не столь интересна, ибо всё шишки набиты. Впрочем, вдруг и ветераны борьбы за своё место под солнцем Яндекса узнают что-то новое для себя. А то и поделятся собственным фронтовым опытом.
YML? Легко!

Некорректная работа API Яндекс.Денег при приеме платежей картой

Время на прочтение4 мин
Количество просмотров24K
В прошлые выходные раздался звонок мобильного телефона. Номер незнакомый. Снимаю трубку.
На противоположном конце линии девушка сообщает, что она представляет компанию Яндекс, и что мне высылали электронное письмо с информацией о новом сервисе: теперь можно принимать на сайте платежи не только Яндекс.Деньгами, но и банковскими картами VISA/MasterCard с помощью формы от Яндекса. Я ответил, что письмо не получал (может попало в спам?), но информация интересная, и я обязательно подробнее ознакомлюсь с новыми возможностями сервиса.
Читать дальше →

Служба Automator, загружающая изображения на Яндекс.Фотки

Время на прочтение2 мин
Количество просмотров7.3K
К созданию этой службы меня подтолкнул пост Скрипт Automator, загружающий изображения на Habrastorage, а точнее, вот этот комментарий.

Итак, в чем же сложность написания подобной службы? В том, что для загрузки изображений требуется OAuth токен, т.е. необходимо как-то его получить (и сохранить для последующего использования). Конечно же, можно создать собственное OAuth приложение и получить токен вручную. Но это не наш метод.

Читать дальше →

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

Время на прочтение14 мин
Количество просмотров62K
Я работаю в Яндексе, у Яндекса есть карты, а у карт есть API. API – вещь, которая позволяет встроить карты Яндекса на свой сайт. С версии 2.0 наш API умеет кластеризовать метки на клиенте. Вот как выглядят метки до и после кластеризации:

image

На днях состоялся очередной релиз нашей бета-версии 2.1.4. Этот релиз примечателен тем, что в нем случилось то, чего так боялись большевики. Как мы и предупреждали, нам пришлось сломать обратную совместимость в кластеризаторе меток.

В этой статье я хочу не просто перечислить новшества в работе с кластеризатором в версии 2.1.4, но и объяснить, зачем нам понадобилось эти новшества плодить. А то вам придется переписывать код, а переписывать код грустно, если не понимаешь, зачем это приходится делать.
Читать дальше →

API Яндекс Лингвистики под .NET

Время на прочтение4 мин
Количество просмотров14K
После посещения Yet another Conference 2013 у меня возникла идея написать API для всех сервисов яндекс лингвистики под .NET. После недлительного гугления, таких библиотек к счастью не оказалось. Несмотря на то, что может она никому особо и не понадобится, я все же решил реализовать ее хотя бы для того, чтобы попрактиковаться с RestSharp, тестированием и различными функциями гитхаба (issuers, release, markdown и др.). Кроме того, в процессе реализации пришлось столкнуться с интересным алгоритмом сравнения строк, о котором я упомяну в топике.

Сразу кидаю ссылки на исходники и бинарики на GitHub: Code, Binary

Реализованные API


  • Яндекс.Предиктор. Данный сервис позволяет приложениям получать в виде подсказок наиболее вероятное продолжение слова или фразы. Предиктор также учитывает опечатки в исходном запросе. Это упрощает процесс ввода текста, особенно на мобильных устройствах.
  • Яндекс.Словарь. Данный сервис позволяет приложениям получать подробные словарные статьи из машинных словарей Яндекса. Статьи содержат сгруппированные переводы, информацию о частях речи, примеры, а также транскрипцию для английских слов.
  • Яндекс.Перевод. Перевод текста для более чем 30 языков.
  • Яндекс.Спеллер. Сервис проверки правописания, который помогает находить и исправлять орфографические ошибки. Работа сервиса основана на использовании орфографического словаря. В настоящее время Спеллер проверяет тексты на русском, украинском и английском языках.

Читать дальше →

Ближайшие события

Как подружить капчу Yandex API и AJAX

Время на прочтение7 мин
Количество просмотров16K
Здравствуйте, уважаемые коллеги. Споры о том, нужна ли так называемая «капча», приносит ли она реальную пользу в деле борьбы со злобными роботами или только вредит «юзабилити» проекта давно утихли, и каждый, кто так или иначе интересовался этим вопросом сделал для себя соответствующие выводы.

Тем не менее, столкнувшись с необходимостью установить капчу в форму авторизации для очередного проекта, а так же после нескольких часов возни с сервисом reCaptcha, который генерирует на странице тонны мусорного кода, я так и не нашёл готового решения, которое бы устроило меня на сто процентов. Ну что же, если хочешь что-то сделать — сделай это сам.

В данной статье речь пойдёт о превращении простого и удобного API Яндекс — Чистый Веб в полноценную, современную и функциональную капчу. А раз уж мы заговорили о модуле авторизации, то думаю, что уместно будет показать — как наша новая капча работает в связке с модулем.
Читать дальше →

Выпущены Яндекс.Навигатор и SpeechKit для Windows Phone

Время на прочтение1 мин
Количество просмотров17K
Сегодня снова хорошие новости для Windows Phone: Яндекс выпустил свой Навигатор для Windows Phone:



Приложение умеет всё, что необходимо водителю за рулём: строит быстрый маршрут с учётом пробок, голосом рассказывает, куда ехать, и предупреждает о дорожных событиях. Навигатор будет полезен в поездках по России, Украине, Беларуси и Турции. Для всех территорий доступны подробные векторные карты.


Но это — всего лишь интересная новость для пользователей смартфонов с WP, а вот что по-настоящему интересно для разработчиков — так это доступность технологии распознавания речи от Яндекса, которая как раз используется в приложении для ввода адресов. О самой технологии коллеги из Яндекса уже писали на Хабре около месяца назад.

Читать дальше →

Пишем простой аналог клиента Яндекс.Диск под Linux (и Windows)

Время на прочтение5 мин
Количество просмотров19K
Всем доброго времени суток!

Хочу рассказать о том как можно, используя FUSE написать программу-клиент для Яндекс.Диск и подобных сервисов. У программы будет несложный, но симпатишный GUI.
Читать дальше →

JavaScript API Яндекс.Карт — версия 2.1-beta — новый дизайн и новые возможности

Время на прочтение5 мин
Количество просмотров28K
Мы выпустили бета-версию API Яндекс.Карт 2.1. Главная ее особенность — полный редизайн интерфейса карты. Причем изменения затронули не только внешний вид, но и поведение элементов управления картой. Поскольку изначально было понятно, что поломки обратной совместимости не избежать, мы также внесли архитектурные изменения, которые были необходимы для улучшения работы API (о них ближе к концу поста).
image
Что касается дизайна, нам было важно, чтобы интерфейс одинаково хорошо выглядел на устройствах и экранах разных размеров. Одна из основных сложностей заключается в том, что мы никогда не знаем заранее, как будет выглядеть сервис или сайт со встроенными картами. Поэтому при разработке редизайна нам нужно было постараться предусмотреть максимум вариантов.

Для решения наших задач мы решили в новой версии реализовать адаптивный дизайн интерфейса. На Yet another Conference дизайнер madhare и разработчик zloylos выступили с докладом о том, зачем нам понадобилась адаптивность и как именно мы ее реализовали в API. В этом посте я опишу предысторию и концепцию наших решений, расскажу о том, что еще нового появилось в версии 2.1-beta, а также о том, что еще изменится к релизу 2.1.
Читать дальше →

SDK от Яндекс.Диска

Время на прочтение4 мин
Количество просмотров33K
Яндекс.Диск получил SDK. Теперь можно удобно использовать его возможности в приложениях для OS X и Windows, ровно как и в мобильных приложениях на iOS, Android и Windows Phone. Кроме этого, мы разработали специальные виджеты, чтобы и любой веб-сайт мог легко реализовать работу с Я.Диском (например, загружать файлы прямо на Я.Диск пользователя) прямо на месте.

Сразу замечу — мы и раньше использовали открытый протокол WebDAV, поэтому в своих приложениях интегрироваться с Диском можно было практически с самого начала. Но теперь возможностей для этого стало больше, а главное — это станет намного более удобным и простым делом.

Также, кроме SDK и виджетов, есть ещё одно важное нововведение — дедупликация файлов, загружаемых через WebDAV. Теперь, если какой-то пользователь уже загружал такой файл, то для вас он будет загружен мгновенно.

image

Обо всём этом я вчера рассказал в своей презентации на Yet Another Conference, а сейчас специально для вас хочу раскрыть подробности на Хабре.
Обо всём по порядку

Голосовой поиск «по-русски»

Время на прочтение1 мин
Количество просмотров31K
Yandex SpeechKitВсем привет. Технологии развиваются очень быстро, и очень приятно, что не только за рубежом.
Компания «Яндекс» представила свою разработку, а именно мультиплатформенную библотеку, которая даёт доступ разработчикам к собственной технологии распознавания речи — SpeechKit.
Более подробная информация далее…
Далее?

Платформа «Атом» от Яндекса — интернет, адаптированный для каждого

Время на прочтение6 мин
Количество просмотров67K
Только что на YaC 2013 Яндекс анонсировал новую платформу «Атом». Она использует множество технологий, которые были созданы для разных задач, чтобы решить одну большую — изменить интернет так, чтобы каждый из нас перестал быть для него абстракцией, а стал человеком со своим характером и интересами.

image

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

Читать дальше →