Условия использования сервиса «API Яндекс.Карт»
Настоящие Условия использования сервиса «API Яндекс.Карт» (далее — Соглашение) представляет собой предложение ООО «ЯНДЕКС» (далее — Яндекс) пользователю сети Интернет (далее — Пользователь), использовать сервис «API Яндекс.Карт» (далее — «Сервис»), на изложенных ниже условиях:
1.1. Использование Пользователем Сервиса регулируется настоящим Соглашением, а также
Пользовательским соглашением сервисов Яндекса, размещенным по адресу: https://yandex.ru/legal/rules,
Лицензией на использование поисковой системы Яндекса, размещенной по адресу: https://yandex.ru/legal/termsofuse,
Политикой конфиденциальности, размещенной по адресу: https://yandex.ru/legal/confidential,
Условиями использования сервиса Яндекс.Карты, размещенным по адресу: https://yandex.ru/legal/maps_termsofuse,
Условиями использования сервиса Яндекс.Народная карта, размещенным по адресу: https://yandex. ru/legal/pmap_termsofuse, и
- Условиями использования сервиса «API Поиска по организациям», размещенным по адресу: https://yandex.ru/legal/geosearch_api.
(далее вместе именуются – «Регулирующие документы»).
Пользователь обязуется ознакомиться со всеми Регулирующими документами и самостоятельно несет риск такого неознакомления.
1.2. К настоящему Соглашению и отношениям между Яндексом и Пользователем, возникающим в связи с использованием Сервиса, подлежит применению законодательство Российской Федерации.
1.3. Пользователь самостоятельно несет ответственность за соблюдение им Законодательства при использовании Сервиса. Везде по тексту настоящего Соглашения, если явно не указано иное, под термином «Законодательство» понимается как законодательство РФ, так и законодательство места пребывания Пользователя или места совершения им юридически значимых действий в соответствии с настоящим Соглашением. Если использование Пользователем какой-либо возможности, предоставляемой Сервисом, нарушает законодательство места пребывания Пользователя, Пользователь обязуется воздержаться от использования Сервиса.
1.4. Используя Сервис, получив API-ключ, разместив код Сервиса на сайте Пользователя или в приложении Пользователя (при условии передачи HTTP заголовка Referer, позволяющего однозначно идентифицировать сайт или приложение Пользователя, для мобильных приложений Referer должен передаваться в виде http://идентификатор_приложения_в_сторе.ymapapp), воспользовавшись любой иной функциональной возможностью Сервиса, Пользователь выражает свое полное и безоговорочное согласие со всеми условиями Регулирующих документов и обязуется их соблюдать. Использование Сервиса на иных условиях, нежели указано в настоящем Соглашении, возможно только по письменному согласованию с Яндексом. В случае несогласия с условиями Регулирующих документов Пользователь не имеет права использовать Сервис.
2.1. Сервис представляет собой набор инструментов и интерфейсов программирования, которые дают возможность взаимодействия с сервисом «Яндекс.Карты» и сервисом «Яндекс.Народная карта», в том числе с Данными этих сервисов, и возможность использования функциональности указанных сервисов на сайте (-ах) или приложениях Пользователя.
2.2. Термины и определения.
«Данные» — сведения, поступающие от Сервиса, предназначенные для показа Пользователям, включая, но не ограничиваясь, картографические произведения, спутниковые снимки, иные фотоснимки и пользовательские данные.
«Правообладатели» — лица, которым на законном основании принадлежат права на Данные.
«Геокодер» — функция Сервиса, осуществляющая преобразования адресов объектов в их координаты на карте или спутниковом снимке и, наоборот, осуществляющая предобразование координат на карте или спутниковом снимке в адреса объектов.
«Маршрутизатор» — функция Сервиса, предоставляющая возможность автоматического прокладывания маршрутов на Сервисе.
«Панорамы» — функция Сервиса, предоставляющая возможность поиска и показа фотографической панорамы местности.
«API-Ключ» — уникальный идентификатор, выдаваемый Пользователю, позволяющий получить доступ к функциям Сервиса со своего сайта или мобильного приложения.
«Static API» — функция Сервиса, предоставляющая возможность получения Данных в виде статического изображения.
«Конструктор карт» — инструмент Сервиса, предоставляющий возможность создавать карты c объектами Пользователя.
«Рейтинг и Отзывы организации» — функция Сервиса, предоставляющая возможность размещения на странице интернет-ресурса Пользователя информационного блока (виджета), содержащего сведения о рейтинге организации и отзывах, отображаемых в карточке организации пользователя сервиса Яндекс.Бизнес.
«JavaScript API» — программная библиотека Сервиса, предоставляющая возможность работы с Сервисом в браузере.
«MapKit» — набор средств разработки, предоставляющий возможность работы с Сервисом в мобильных приложениях для iOS и Android.
«HTTP API» — серверный API, предоставляющий возможность для доступа к отдельным функциям Сервиса, включая, но не ограничиваясь: Геокодер, Static API.
2.3. Использование Сервиса разрешается только при соблюдении следующих условий:
2.3.1. Для использования сервисов JavaScript API, HTTP API Геокодера, MapKit Пользователь обязан зарегистрироваться на Интернет-сайте Яндекса «Технологии Яндекса», доступном по адресу: https://developer. tech.yandex.ru по установленной форме и получить API-Ключ.
2.3.2. После получения API-Ключа (применимо для JavaScript API, HTTP API Геокодера, MapKit) Пользователю необходимо разместить код вызова Сервиса на сайте или в приложении. Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин.
2.3.3 Сервис может использоваться Пользователем только в рамках сайтов или приложений, доступных для бесплатного открытого использования неограниченным кругом лиц. Сервис не может использоваться для проектов, требующих оплаты, или иным образом ограничивающих доступ к ним третьих лиц. Необходимость зарегистрироваться не считается ограничением доступа в рамках настоящего пункта.
2.3.4. Пользователь может использовать Данные, функции и инструменты, полученные при помощи Сервиса, только в рамках функциональности, предоставляемой Сервисом.
2.3.5. Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин. Пользователь не имеет права использовать любые программы, устройства или иные средства, позволяющие получить API-Ключ автоматическим путем или иным образом с нарушением процедуры, установленной Яндексом.
Яндекс оставляет за собой право устанавливать любые лимиты и ограничения, включая далее перечисленное, но не ограничиваясь этим: на размеры, объем, цветовое оформление и число изображений карты, схемы или спутниковых снимков, предоставляемых посредством Сервиса, и может менять их по собственному усмотрению, без предварительного уведомления Пользователей.
2.3.6. Пользователь передает Яндексу право использования информации и объектов (схемы проезда, объекты на карте и прочее), которые Пользователь самостоятельно разместил при помощи API Конструктора карт, любыми способами в полном объеме. Размещенные Пользователем с использованием Сервиса информация и объекты могут быть использованы на иных сервисах и ресурсах Яндекса, а также с согласия Яндекса на ресурсах третьих лиц. В случае если Пользователь не вправе предоставить Яндексу право использования какой-либо информации или объектов подобным способом, он не вправе размещать их при использовании Сервиса. Права на базу данных, являющуюся совокупностью информации и объектов, созданную с использованием Сервиса, принадлежат Яндексу.
2.3.7. Пользователь настоящим уведомлен и согласен с тем, что при использовании Пользователем Сервиса Яндексом в автоматическом режиме будет собираться, передаваться и храниться на серверах Яндекса включая, но не ограничиваясь, следующая информация: Интернет-протокол (IP) адрес и ID-адрес устройства посетителей сайтов или приложений Пользователя, геолокационная информация о посетителях сайтов или приложений Пользователя. Пользователь гарантирует, что им были получены соответствующие согласия от посетителей сайтов или приложений Пользователя на сбор, передачу и хранение указанной информации на серверах Яндекса.
2.3.8. Пользователь обязуется разместить в своем мобильном приложении в разделе «О программе» или ином подобном разделе мобильного приложения, гиперссылку на Условия использования сервиса Яндекс.Карты, размещенные по адресу: https://yandex.ru/legal/maps_termsofuse, следующего вида — «Условия использования сервиса Яндекс.Карты».
2.3.9. Геокодирование, Маршрутизатор и Панорамы:
2. 3.9.1. Функция Геокодер может быть использована только для сайтов или приложений, использующих Сервис. Пользователь имеет право обрабатывать полученные координаты исключительно для отображения их посредством Сервиса. При этом количество обращений к Геокодеру не должно превышать 1 000 запросов в сутки.
2.3.9.2. Маршрутизатор может быть использован только для сайтов или приложений, использующих Сервис.
2.3.9.3. Количество обращений к Геокодеру, Маршрутизатору и Панорамам не должно превышать 25 000 запросов для одного сайта/ приложения в сутки. Одно обращение к Геокодеру или Маршрутизатору приравнивается к одному запросу, одно обращение к функции поиска ближайшей к определённой координате Панорамы – к пяти запросам соответственно.
2.3.10. «Рейтинг и Отзывы организации»:
2.3.10.1. Функция «Рейтинг и Отзывы организации» предоставляет Пользователю возможность отображать сведения о рейтинге организации и поступающие от сервиса Яндекс.Карты отзывы об организациях, опубликованные пользователями сервиса Яндекс. Карты в соответствии с Условиями использования сервиса Яндекс.Карты (https://yandex.ru/legal/maps_termsofuse).
2.3.10.2. Функция «Рейтинг и Отзывы организации» содержит информацию, размещенную в сервисе Яндекс.Бизнес в соответствии с пунктом 2.4 Условий использования сервиса Яндекс.Бизнес (https://yandex.ru/legal/clients_termsofuse).
2.3.10.3. Яндекс не несет ответственности за содержание информации, предоставленной сервисом Яндекс.Бизнес, ее соответствие законодательству, полноту, корректность и достоверность. Яндекс не несет ответственности за размещение Пользователем (в том числе, в недобросовестных целях) информации, несоответствующей действительности, неактуальной, нарушающей права и законные интересы третьих лиц, а также не подтверждает и не опровергает соответствие законодательству, корректность и достоверность предоставленной сервисом Яндекс.Бизнес информации.
2.3.11. ОГРАНИЧЕНИЯ. Используя Сервис, Пользователь не имеет права:
2.3.11.1. Изменять, декомпилировать и/или каким-либо образом модифицировать программный код, полученный посредством Сервиса.
2.3.11.2. Удалять, изменять порядок или сортировку, скрывать или модифицировать Данные, а также любую содержащиеся в Сервисе или Данных информацию, включая, но не ограничиваясь, рекламно-информационные материалы, товарные знаки, логотипы, ссылки или иные указания на Правообладателей, равно как и любые другие уведомления и/или информацию, передаваемые Сервисом вместе с Данными.
2.3.11.3. Создавать на основе Сервиса системы мониторинга транспортных средств, людей или иных объектов, отображающие информацию в реальном времени, и любые другие услуги, связанные с управлением и диспетчеризацией.
2.3.11.4. Сохранять, обрабатывать и видоизменять полученные через Сервис Данные (включая результаты геокодирования и маршрутизации), за исключением случаев временного хранения (кэширования) результатов геокодирования и построения маршрутов исключительно для целей улучшения функциональности и работоспособности Сервиса и только для использования в рамках возможностей, предоставляемых Сервисом, на срок не более 30 дней.
2.3.11.5. Использовать Сервис для создания сайтов/ приложений, нарушающих законодательство РФ или иное применимое законодательство, права и законные интересы третьих лиц, а также противоречащих требованиям п. 4 Пользовательского соглашения Яндекса.
2.3.11.6. В случае, если сайт или приложение Пользователя имеет суточную аудиторию более 100 000 пользователей, Пользователь перед началом использования Сервиса обязан связаться с Яндексом путем направления электронного письма по адресу [email protected], в котором должен указать название сайта или приложения и суточную аудиторию пользователей. Указанные действия необходимы для обеспечения максимальной производительности подобных сайтов или приложений Пользователя.
2.3.12. Изменения и версии. Яндекс оставляет за собой право изменять/исправлять или обновлять Сервис в любой момент, без предварительного уведомления Пользователей. При выпуске очередной стабильной версии Яндекс сообщает о её выпуске на веб-страницах Сервиса. После выпуска новой версии Яндекс не гарантирует стабильность и продолжительность работы устаревшей версии. Пользователь, не согласный использовать обновленную версию Сервиса, может либо продолжать на свой страх и риск использовать устаревшую версию Сервиса, либо прекратить использование Сервиса, удалив соответствующий код с сайта (-ов)/ приложения Пользователя.
2.3.13. Реклама. Яндекс оставляет за собой право включить рекламные материалы по своему усмотрению в состав Данных, предоставляемых и отображаемых Сервисом.
2.3.14. При превышении лимитов использования, указанных в п. 2.3.11 Яндекс вправе прекратить доступ Пользователя к Сервису путем блокировки API-ключа, выданного Пользователю.
Использование Данных для целей, указанных в пункте: 2.3.11.3., а также с превышением лимита запросов допускается с использованием Платного API Карт на условиях, расположенных по адресу: https://tech.yandex.ru/maps/commercial.
3.1. Исключительное право на Сервис принадлежит Яндексу. Исключительные права на Данные (включая картографические данные, снимки, рекламные материалы, любые товарные знаки, логотипы или фирменные наименования) принадлежат Яндексу или Правообладателям. Настоящее Соглашение не дает Пользователю каких-либо прав на использование Сервиса или Данных помимо тех возможностей, которые предоставляются непосредственно в интерфейсе Сервиса в соответствии с настоящим Соглашением.
3.2. Используя Сервис, Пользователь предоставляет Яндексу право использовать логотип, товарный знак и/или фирменное наименование Пользователя и/или сайта/ приложения Пользователя в информационных, рекламных и маркетинговых целях, связанных с сервисами «Яндекс.Карты», «Яндекс.Народная карта» и/или «API Яндекс.Карт», в частности, без необходимости получения дополнительного согласия Пользователя и без выплаты ему какого-либо вознаграждения за такое использование.
4.1. Сервис (включая Данные и иную информацию, предоставленную с его помощью) предоставляется Яндексом «как есть». Яндекс не гарантирует соответствие Сервиса и Данных целям и ожиданиям Пользователей, бесперебойную и безошибочную работу Сервиса в целом и отдельных его компонентов и/или функций, а также не гарантирует достоверность, точность, полноту и своевременность Данных, получаемых с помощью Сервиса. Яндекс не несет ответственности и не возмещает никакие убытки, в том числе никакой ущерб, прямой или косвенный, причиненный Пользователю Сервиса или третьим лицам в результате использования или невозможности использования Сервиса, отдельных его компонентов и/или функций, а также в результате использования или невозможности использования Данных, получаемых с помощью Сервиса.
4.2. Пользователь самостоятельно и в полном объёме несёт ответственность за использование и сохранность своего API-Ключа. Пользователь не имеет права получать API-Ключ для третьих лиц, передавать или предоставлять его третьим лицам. Яндекс не несёт ответственности за несанкционированное использование API-Ключа третьими лицами. Все действия, совершенные на Сервисе с использованием принадлежащего Пользователю API-Ключа, считаются совершенными Пользователем.
4.3.Пользователь должен самостоятельно оценивать достоверность, надежность, полноту или полезность Данных и самостоятельно несёт все риски, связанные с использованием (невозможностью использования) Сервиса и Данных, а также ответственность перед третьими лицами за свои действия при использовании Сервиса и Данных, в том числе за то, что действия соответствуют требованиям Законодательства и не нарушают права и законные интересы третьих лиц. Пользователь самостоятельно и за свой счет обязуется урегулировать все претензии и/или иски третьих лиц, связанные с действиями Пользователя при использовании Сервиса.
4.4. Пользователь понимает и соглашается с тем, что использование, указание или размещение в Сервисе любых сведений о каких-либо организациях, предприятиях, лицах, товарах, услугах, в том числе обозначений и/или ссылок в составе Данных и Сервиса, носит исключительно информационный характер и не является выражением их особой поддержки, одобрения или рекомендаций со стороны Яндекса
5. 1. Яндекс имеет право без уведомления по собственному усмотрению прекратить или приостановить доступ Пользователя к Сервису или его отдельным функциям с использованием его учетной записи и/или API-ключа без объяснения причин, в частности, в случае нарушения Пользователем требований настоящего Соглашения.
5.2. Все вопросы и претензии, связанные с использованием/невозможностью использования Сервиса, должны направляться через форму обратной связи по адресу https://tech.yandex.ru/maps/doc/geocoder/desc/feedback/troubleshooting-docpage.
5.3. Яндекс вправе в любое время без уведомления Пользователя изменять текст настоящего Соглашения, Регулирующих документов и/или любые иные условия использования Сервиса. Действующая редакция настоящего Соглашения размещается по адресу: https://yandex.ru/legal/maps_api. Риск неознакомления с новой редакцией Соглашения или Регулирующих документов несет Пользователь, продолжение использования Сервиса после изменения условий Соглашения и/или Регулирующих документов считается согласием с их новой редакцией.
6.1. Актуальная информация о правообладателях и обладателях информации доступна по адресу: https://yandex.ru/legal/right_holders.
6.2. В состав MapKit в качестве отдельных его компонентов входит стороннее программное обеспечение. Актуальная информация о таком стороннем программном обеспечении в составе MapKit доступна по адресу: https://yandex.ru/legal/maps_api/components.
Государственная граница между Российской Федерацией и республикой Абхазия, Грузией, республикой Южная Осетия, Эстонской республикой подлежит международно-правовому оформлению.
Новости — API Яндекс.Вебмастера — долгожданный подарок веб-разработчикам
Команда Яндекса постоянно находится в поиске новых решений, которые позволили бы и пользователям, и веб-мастерам работать с сервисами Яндекса более комфортно. Очередное нововведение на этот раз коснулось сервиса Яндекс. Вебмастер: уже давно ходили слухи о том, что компания направила все усилия на разработку API этого сервиса. И вот, наконец, слухи подтвердились: компания официально заявила о начале функционирования API Яндекс. Вебмастера.
Как уточняют специалисты Яндекса, данный интерфейс ориентирован прежде всего на разработчиков сайтов, хостинг-провайдеров и веб-оптимизаторов, которые теперь могут самостоятельно создавать необходимые программные модули для работы с данными по сайту.
Иными словами, в руки оптимизаторов был передан инструмент, позволяющий создавать разнообразные приложения, с помощью которых можно:
- проводить более тщательный анализ результатов продвижения сайта;
- разрабатывать максимально эффективную стратегию оптимизации сайта и его продвижения;
- более точно предсказывать изменение позиций сайта и в соответствии с этим корректировать стратегию продвижения;
- в случае изменений в алгоритмах выдачи анализировать те параметры, на которые поисковик обращает большее внимание, и, соответственно, оперативно вносить корректировки в план продвижения.
Еще одним важным преимуществом API Яндекс. Вебмастера является то, что данный интерфейс может быть использован даже в том случае, если нуждающийся в продвижении сайт был создан совсем недавно: расширение позволяет «принудительно» направлять в Яндекс информацию о необходимости индексации сайта.
На данный момент API Яндекс. Вебмастера проходит апробацию в различных компаниях, и агентство интернет-маркетинга» matik» не исключение: мы активно работаем над собственными приложениями и успешно тестируем их, все это позволяет нашим клиентам быть более уверенными в результатах поискового продвижения.
Российский рынок акций закрылся слабым ростом биржевых индексов — Экономика и бизнес
МОСКВА, 3 августа. /ТАСС/. Российский рынок акций смог продолжить рост, несмотря на снижение цен на нефть. По итогам дня индекс Мосбиржи вырос на 0,15%, до 3 793,69 пункта, долларовый индекс РТС — на 0,11%, до 1 637,70 пункта. Доллар по отношению к рублю на 20:23 мск снизился на 0,09%, до 72,69 рубля, евро — на 0,16%, до 86,55 рубля.
Ближайший фьючерс на нефть марки Brent к закрытию российского рынка акций торгуются в минусе на 1,17% на отметке $72,27 за баррель. «Волатильность цен на нефть увеличилась после выхода слабых данных по экономической активности в производственном секторе КНР в июле и сообщений о вспышках COVID-19 почти в половине китайских провинций.
Рынок акций
Сегодня на Мосбирже в лидерах роста находятся акции компании «Алроса» (+3%). «Компания является бенефициаром открытия экономик после пандемии и восстановления спроса на люксовые товары и драгоценности. В июле «Алроса» увеличила средние цены на бриллианты на 7% квартал к кварталу, а с начала года их стоимость выросла уже на 27%. Сильный спрос и высокие цены должны поддержать финансовые результаты компании», — отметил инвестиционный стратег «ВТБ Мои инвестиции» Иван Малина.
Бумаги «Русала» (-7,24%), напротив, оказались в аутсайдерах. Причиной может служить реакция рынка на комментарии одного из основных акционеров En+ Group Олега Дерипаски, по мнению которого, действия российских властей в отношении российских металлургов уже привели к потере $50 млрд, считает аналитик «Фридом финанс» Александр Осин.
«Подобная риторика, по мнению рынка, может означать повышение шансов анонсированной ранее менеджментом компании возможности закрытия некоторых, оказавшихся на грани рентабельности, производств, суммарная доля мощностей которых составляет несколько сотен тысяч тонн продукции. В частности, темпы запуска нового Тайшетского алюминиевого завода тоже могут быть пересмотрены», — пояснил эксперт.
Прогноз на 4 августа
В середине недели фокус внимания участников торгов может снова сосредоточиться на статистике. Будут опубликованы июльские индексы деловой активности в секторе услуг Китая, Германии, еврозоны, США, Великобритании. Аналогичный показатель представит Росстат.
Также из важных экономических статистических маркеров дня — публикация данных о числе занятых в несельскохозяйственном секторе США от ADP за июль и индекса менеджеров по снабжению для непроизводственной сферы США от за минувший месяц. На нефтяных котировках локально может сказаться информация о недельных изменениях запасов нефти в США от API и EIA, рассказал Александр Бахтин.
По оценкам «БКС Мир инвестиций», индекс Мосбиржи в среду будет формироваться в пределах 3 740 — 3 820 пунктов, прогнозный диапазон курса рубля к доллару 72,7-74 рубля. Целевые диапазоны закрытия торгов «Фридом финанс» для индекса Мосбиржи и курсов доллара и евро к рублю составляют 3 760 — 3 810 пунктов, а также 72,55-73,35 рубля и 86,45-86,95 рубля соответственно.
«Яндекс» уступил Сбербанку и «ВКонтакте»
В преддверии вступления в силу Федерального закона «О внесении изменения в статью 4 Закона РФ «О защите прав потребителей» от 02.12.2019 №425-ФЗ о предустановке приложений на смартфоны, продаваемые на территории России, широко обсуждается предлагаемый список сервисов. Исследовательский холдинг «Ромир» изучил, какими приложениями россияне пользуются и что скачивают в первую очередь.
Исследователи просили респондентов отметить, какие приложения они поставят на свой смартфон после покупки, а также назвать самые используемые и важные для установки в первую очередь утилиты в разных категориях: браузеры, социальные сети, мессенджеры, голосовые помощники, облачные хранилища, приложения для взаимодействия с государственными органами, антивирусы, почтовые, навигационные, видео- и онлайн-сервисы. Выяснилось, что многие приложения, вошедшие в список для предустановки в рамках закона, россияне уже используют.
Согласно результатам исследования, большинство респондентов отметили «ВКонтакте» (60%) и «Сбербанк Онлайн» (38%) в качестве главных приложений для установки сразу после приобретения нового телефона. Тройку лидеров замыкает «Яндекс» (10%). В «Ромире» корреспонденту ComNews пояснили, что имеется в виду основное приложение «Яндекс» (с поиском, «Алисой» и т.д.). В «Яндексе» на запрос ComNews по поводу результатов исследования не ответили.
Также в топ вошли приложения «Почта Mail.ru» (10%) и «Одноклассники» (8%). Исследователи задавали респондентам открытый вопрос.
Наиболее важным для установки в первую очередь почтовым приложением россияне считают почту от Mail.ru — за нее проголосовало 35% респондентов. Самыми популярными утилитами являются Gmail (пользуются 73%), «Яндекс.Почта» (70%) и «Почта Mail.ru» (64%).
Россияне отдают одинаковое предпочтение Google Chrome и «Яндекс. Браузеру», когда им нужно выбрать браузер для смартфона для установки в первую очередь (39% и 38% соответственно). Самыми популярными браузерами стали Google Chrome (пользуются 80%), «Яндекс.Браузер» (74%) и Opera (27%). Среди владельцев телефонов на базе iOS высока доля пользователей браузером Safari (70%).
Выбирая, приложение какой социальной сети установить в первую очередь, 57% россиян назвали «ВКонтакте». При этом респонденты старше 40 лет первым делом скачивают «Одноклассники» (59%). Самыми популярными соцсетями для смартфона стали «ВКонтакте» (90%) и Instagram (82%). Приложения Facebook и «Одноклассники» используют 36% и 35% россиян соответственно.
Самым необходимым мессенджером для установки в первую очередь после покупки нового телефона стал WhatsApp (61%), он же является самым популярным приложением в данной категории (пользуются 91%). Следом за ним в рейтинге востребованности идут Telegram (75%) и Viber (52%). А вот мессенджер ICQ, также вошедший в список предустановок, устанавливает всего 3,9% россиян.
Самым необходимым навигационным сервисом для установки сразу после покупки нового телефона названо приложение «Яндекс.Карты» (41,8%). Самыми популярными утилитами стали «Яндекс.Карты» (81,6%), «Карты Google» (70,4%) и 2ГИС (61,5%).
Голосовой помощник «Алиса» от «Яндекса» отмечен как наиболее часто используемый (46%). На вопрос, какими голосовыми помощниками пользуются в целом (не чаще всего), 77% владельцев Android также отметили «Алису», 57% используют «Google Ассистент». Среди владельцев смартфонов на iOS наиболее популярна установленная по умолчанию Siri — ею пользуются 83,5%. При этом всего 5,5% респондентов отметили, что не пользуются никаким голосовым помощником.
Из списка утилит для взаимодействия с государственными органами наиболее необходимой для установки в первую очередь стали «Госуслуги» (89%). Практически все респонденты (96,2%) установили бы данное приложение. В топ-3 сервисов также вошли «Мой налог» и «Пенсионный фонд России» (по 24%). Приложением ПФР значимо чаще пользуются мужчины старше 40 лет (35%) и женщины 31-40 лет (33%).
Среди антивирусов самым популярным приложением стало Kaspersky Internet Security — 47,1% респондентов установили бы его в первую очередь, еще 64% респондентов установили бы его после покупки нового устройства, 38,5% респондентов установили бы Avast Mobile Security, 20% россиян установили бы ESET Mobile Security & Antivirus.
Среди видеосервисов россияне отдали предпочтение приложению IVI для установки в первую очередь (22%), а наиболее популярными стали IVI (50%), «КиноПоиск» (45%) и Netflix (42%). В топ-5 по пользованию в целом также вошли видеосервисы Okko и Megogo, однако их реже скачивают в первую очередь (11% и 6% соответственно).
Выбирая для установки онлайн-сервисы, большинство россиян установило бы приложение YouTube в первую очередь (91%). Всего же 95,5% респондентов установили бы его на телефон. Среди других сервисов для установки респонденты отметили «ТВ Онлайн» (42%) и «Билайн ТВ» (18%). Приложением «Билайн ТВ» значимо чаще пользуются в Москве (27,1%) и южных регионах (28%). Остальные приложения онлайн-сервисов респонденты в целом не считают необходимыми для установки в первую очередь.
«В современном мире смартфон является неотъемлемой частью каждого социально активного человека. Поэтому неудивительно, что россияне активно используют весь спектр доступных сервисов. Социальные сети являются одной из главных площадок для времяпрепровождения как молодежи, так и более возрастной аудитории, а присутствие Сбербанка, «Яндекса» и Mail.ru в топе объясняется процессом их трансформации в экосистемы — уже сейчас в одном приложении можно и продукты заказать, и билеты в кино купить, и такси вызвать», — комментирует результаты исследования президент «Ромира», основатель Mile Group и доктор социологических наук Андрей Милехин.
Управляющий партнер B&C Agency Марк Шерман считает, что в выборе россиян нет ничего удивительного, поскольку топ-5 приложений отвечают самым насущным потребностям человека — общению и возможности заплатить онлайн. «На что хочется обратить внимание — это лидерство отечественных социальных сетей на рынке, тогда как во многих странах доминирует Facebook. А также быстрый рост популярности Netflix, что говорит о готовности платить не только за видеоконтент, а в целом за предоставляемые онлайн-услуги. В топе популярных мессенджеров мы не видим Twitter, к которому есть претензии у Роскомнадзора. Исследование также подтверждает прочное место онлайн-коммерции в нашей жизни, а также конкуренцию между «Яндекс.Картами» и 2ГИС. Среди видеосервисов сюрпризов не произошло — здесь доминирует YouTube», — прокомментировал Марк Шерман.
Технический директор RuSIEM Антон Фишман отметил, что список сервисов, утвержденный правительством России для установки на смартфоны перед их продажей с 1 января, конечно же включает в себя только сервисы, созданные в России. «Это же прописано и в самом законе. Процесс импортозамещения у нас в активной фазе, однако все еще большое количество зарубежных удобных продуктов используются россиянами, поэтому мы и видим некоторое расхождение результатов опроса с утвержденным перечнем. Хорошо, что этот закон не обязывает устанавливать только определенные сервисы, поэтому остальные востребованные вещи, типа YouTube, WhatsApp, также будут продолжать использовать, — комментирует Антон Фишман. — Интересен такой момент: приложение можно вшить в прошивку аппарата так, что его нельзя будет удалить, либо просто предустановить и оставить возможность удаления. Пока непонятно, каким путем пойдут наши производители совместно с Google и Apple, очень надеюсь, что оставят возможность удалять. Мне, например, как, думаю, и многим, ICQ или Applist.ru на телефоне не сильно нужны, а все это предустановленное ПО занимает место, а когда запущено — занимает оперативную память и расходует батарею. Странный выбор ICQ можно объяснить именно тем, что это единственный популярный мессенджер из всех существующих, который принадлежит российской компании — Mail.ru Group. С точки зрения безопасности, предустановка такого ПО при правильном подходе не должна повлиять как-то массово негативно, поскольку тут нет чего-то нового или неизвестного — все эти сервисы разработаны давно, каждый день используются миллионами людей и прошли проверку временем. Хорошо бы, имея уже перечень предустанавливаемого ПО с версиями IOS и Android, провести дополнительный Bug Bounty: выделить деньги на поиск уязвимостей уже в полноценном комплекте — аппарат со всеми предустановками, либо заказать исследование у профессиональной компании, занимающейся анализом уязвимостей, ну и дополнительно проверить, как установка этого ПО повлияет на работоспособность и живучесть аппарата».
Получите бесплатный ключ API Яндекса
Fedilab использует API Яндекса для переводов, потому что он позволяет бесплатно ежедневный лимит запросов в 1 000 000 символов и ежемесячный лимит в 10 000 000 символов. Хотя, кажется, этого достаточно, Mastalab делится ключом API со всеми пользователями, это означает, что рано или поздно общий ключ может достичь одного из этих ограничений.
Хорошая новость: Fedilab позволяет устанавливать ключи API, так что вы можете создать свой собственный ключ API, которым никто не будет делиться.
В этом посте вы узнаете, как легко создать собственный ключ API с помощью Яндекс Переводчика.
Сначала вам нужно перейти на эту страницу: https://tech.yandex.com/translate/
Первый пункт говорит вам, что вы можете тестировать переводы, но здесь это не так важно.
Второй пункт, представит вам пользовательское соглашение и правила форматирования результатов перевода. Приложение учитывает эти моменты (если вы заметили какие-либо изменения, сообщите мне о них).
Третий пункт позволит создать ключ, который вы вставите в приложение.
1 — Итак, нажмите «Получить бесплатный ключ API». Вам нужно будет создать свою учетную запись или использовать уже существующую.
2 — В правом верхнем углу нажмите «+ Создать новый ключ»
Создать новый ключ
3 — Напишите небольшое описание для этого ключа (будет полезно, если вы управляете несколькими ключами)
Описание ключа
4 — Тогда вы получите свой ключ. Вы можете заметить, что можно отключить ключ (я отключу этот ключ после тестов, потому что я его отображал).
Новый ключ API
5 — Следующий шаг — скопировать и вставить этот ключ в настройки Fedilab. Если вы создали этот ключ на компьютере, вы можете отправить его на свой телефон по электронной почте. Затем откройте настройки в левом меню. Перейдите на первую вкладку и перейдите к настройкам перевода. Просто скопируйте / вставьте свой ключ.
Открыть настройки
Длительное нажатие на поле клавиши
Вставьте ключ API
Fedilab использует MyTransL — библиотеку, которую я разработал.Эта библиотека настроена в Fedilab для сокрытия конфиденциальных данных перед их отправкой в API перевода:
Скриншот MytransL
Все электронные письма / упоминания / теги / URL-адреса будут обфусцированы перед отправкой в API.
Статья из @apps
В других новостях экономики API: Библиотека машинного обучения с открытым исходным кодом Яндекса и многое другое
Мы начинаем ваши выходные с обзора историй, которые мы не смогли охватить, и взглянуть на то, что происходит в мире API.Мы начинаем с новости о том, что Яндекс, российская поисковая компания, объявила об открытии исходного кода CatBoost, библиотеки машинного обучения. Библиотека основана на повышении градиента, методе машинного обучения, описанном TechCrunch как «разработанный, чтобы помочь« научить »системы, когда у вас очень мало данных, и особенно когда не все данные могут быть сенсорными (например, аудио, текст или изображения), но также включает транзакционные или исторические данные ». Яндекс бесплатно выпускает CatBoost для всех, кто может использовать его по лицензии Apache.Этот шаг аналогичен тому, что мы видели в Google, когда они открыли исходный код TensorFlow в конце 2015 года. Поскольку спрос на решения для искусственного интеллекта, поддерживаемые платформами машинного обучения, продолжает расти, подобные шаги помогают широкому кругу разработчиков воспользоваться преимуществами технология.
Компания SmartSoft по проверке адресов запустила на этой неделе свой новый REST API для проверки электронной почты. API позволяет пользователям проверять качество адресов электронной почты, собранных через приложение, веб-сайт или систему CRM. Некоторые из представленных функций включают в себя: оценку качества, применяемую к адресам электронной почты, определение возможности доставки адреса, оповещение об адресах электронной почты, созданных службами, используемыми для создания одноразовых электронных писем, распознавание электронных писем, связанных с бизнес-функцией вместо человека, и многое другое. .
Наконец, компания Hewlett Packard Enterprise (HPE) Software объявила об обновлении пакета средств защиты данных Adaptive Backup and Recovery Suite, призванного помочь клиентам защитить свою среду резервного копирования.В новое обновление включен набор REST API, на основе которых построены модули защиты. По мере того, как организации пытаются консолидировать свои процессы защиты данных, их усилиям по-прежнему будут способствовать решения, которые могут представлять унифицированные интерфейсы для различных модулей благодаря общим базовым API.
Пишем Ruby gem для API Яндекс Директ / Sudo Null IT News
Очень хотелось выучить Ruby получше, но рабочего проекта не было. И попробовал написать гем для работы с API Яндекс Директ.
Причин несколько. Среди них: API Яндекс Директ очень характерен для Яндекса и современных REST-сервисов в целом. Если вы поймете и преодолеете типичные ошибки, вы легко и быстро сможете написать аналоги для других API Яндекса (и не только). И еще: все аналоги, которые мне удалось найти, имели проблемы с поддержкой версий Директа: одни заточены под 4, другие под новую 5, а поддержки модулей я нигде не нашел.
Основная идея гема заключается в том, что, поскольку в таких языках, как Ruby или Python, вы можете создавать новые методы и JSON-подобные объекты на лету, методы интерфейса для доступа к службе REST могут повторять функции остальных сам сервис.Чтобы можно было написать так:
request = {
"SelectionCriteria" => {
"Типы" => ["TEXT_CAMPAIGN"]
},
"FieldNames" => ["Id", "Name"],
"TextCampaignFieldNames" => ["BiddingStrategy"]
}
options = {токен: токен}
@direct = Ya :: API :: Direct :: Client. new (параметры)
json = direct.campaigns.get (request)
И вместо того, чтобы писать справку, отправьте пользователей к руководствам, используя указанный API.
Вызов методов из более старых версий, например, так:
json = direct.v4.GetCampaignsList
Если вам не интересно читать, но вы хотите попробовать, вы можете получить готовый гем отсюда:
О получении omniauth-токена с рельсов можно узнать из примера в твиттере. А названия методов и порядок регистрации очень подробно описаны в документации от Яндекс.
Если интересны подробности — они дальше.
Начать разработку
Разумеется, в статье описывается самый базовый опыт и самые простые вещи.Но он может быть полезен новичкам (вроде меня) в качестве напоминания для создания типичного драгоценного камня. Информацию по статьям собирать, конечно, интересно, но надолго.
Наконец, может оказаться, что кому-то из читателей действительно нужно поскорее добавить в свой проект поддержку API Яндекс Директ.
И мне тоже будет полезно — в плане обратной связи.
Тестовый скрипт
Сначала зарегистрируйтесь в Яндекс Директ, создайте там тестовое приложение и получите для него временный Токен.
Затем откройте справку API Яндекс Директ и узнайте, как вызывать методы. Примерно так:
Для версии 5:
требуется "net / http" требуется "openssl" требуется "json"
Token = "TOKEN" defsend_api_request_v5 (request_data)
url = "https: //% {api} .direct.yandex.com / json / v5 /% {service}"% request_data
uri = URI.parse (url)
request = Net :: HTTP :: Post.new (uri.path, initheader = {
'Client-Login' => request_data [: логин],
'Accept-Language' => «ru»,
'Authorization' => "Номер на предъявителя {токен}"
})
запрос.body = {
"метод" => данные_запроса [: метод],
"params" => request_data [: params]
} .to_json
http = Net :: HTTP.new (uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL :: SSL :: VERIFY_NONE
response = http. request (запрос)
если response.kind_of? Сеть :: HTTPSuccess
JSON.parse response.body
еще
поднять ответ. осматривать
заканчивать
p send_api_request_v5 api: "api-sandbox", логин: "ВАШ ВОЙТИ ЗДЕСЬ", служба: "кампании", метод: "get", параметры: {
"SelectionCriteria" => {
"Типы" => ["TEXT_CAMPAIGN"]
},
"FieldNames" => ["Id", "Name"],
"TextCampaignFieldNames" => ["BiddingStrategy"]
}
Для версии 4 Live (токен подходит для обеих):
требуется "net / http" требуется "openssl" требуется "json"
Token = "TOKEN" defsend_api_request_v4 (request_data)
url = "https: //% {api}.direct.yandex.com/%{version}/json/ "% request_data
uri = URI.parse (url)
request = Net :: HTTP :: Post.new (uri.path)
request.body = {
"метод" => данные_запроса [: метод],
"param" => request_data [: params],
"locale" => "ru",
"token" => Токен
} .to_json
http = Net :: HTTP.new (uri.host, uri.port)
http.use_ssl = true
http. verify_mode = OpenSSL :: SSL :: VERIFY_NONE
response = http.request (запрос)
если response.kind_of? Сеть :: HTTPSuccess
JSON.parse (ответ.тело)
еще
поднять ответ. осматривать
заканчивать
p send_api_request_v4 api: "api-sandbox", версия: "live / v4", метод: "GetCampaignsList", params: []
Эти сценарии уже подходят для отладки и быстрых тестовых запросов.
Но, как учит нас (мифический) человеко-месяц, сценарий для себя и библиотека для других — это два разных класса приложений. И чтобы перейти одно в другое, нужно попотеть.
Для начала нужно было определиться с названием — простое и не занятое.И пришел к выводу, что ya-api-direct — это то, что нам нужно.
Во-первых, сама структура логична — и если, например, тоже появится ya-api-weather, будет понятно, к чему это относится. Во-вторых, у меня до сих пор нет официального продукта от Яндекса для использования торговой марки в качестве приставки. Кроме того, это намек от ya. ru, где бережно хранится прежний лаконичный дизайн.
Создавать все папки своими руками немного лениво. Пусть это сделает за нас Bundler:
bundle gem ya-api-direct
В качестве инструмента для UnitTest я указал minitest.Тогда будет понятно почему.
Теперь у нас есть папка, и в ней готовый для сборки гем. Единственный его недостаток в том, что он полностью пустой.
Но сейчас исправим.
Написание тестов
UnitTest невероятно полезны для обнаружения искусно скрытых ошибок. Практически каждый программист, который, тем не менее, смог их написать и по ходу исправить пару десятков ошибок, скрывавшихся в исходном коде, обещает себе, что теперь он всегда будет их писать. Но все равно не пишет.
Некоторые проекты (вероятно, написанные особо ленивыми программистами) имеют одновременно и тестовые, и специальные тесты. Но в последних версиях minitest я внезапно узнал spec-interface и решил обойтись только спецификациями.
Поскольку у нас онлайн-интерфейс и к тому же с нас списываются баллы за каждый запрос, мы будем подделывать ответы от API Яндекс Директ. Для этого нам понадобится хитрый веб-макет драгоценного камня.
Добавить в драгоценные камни
группа: testdo
драгоценный камень 'rspec', '> = 2.14 '
драгоценный камень 'rubocop', '> = 0,37'
gem 'webmock'end
Обновите, переименуйте тестовую папку в spec. Так как очень торопился, то писал тесты только для внешних интерфейсов.
require'ya / api / direct'require'minitest / autorun'require'webmock / minitest '
описать Ya :: API :: Direct :: Client do
Токен = "ТОКЕН"
прежде чем делать
@units = {
just_used: 10,
units_left: 20828,
unit_limit: 64000
}
units_header = {"Units" => "% {just_used} /% {units_left} /% {units_limit}"% @units}
@campaigns_get_body = {
}
stub_request (: post, "https: // api-sandbox.direct.yandex.ru/json/v5/campaigns ")
. с(
заголовки: {'Accept' => '* / *', 'Accept-Encoding' => 'gzip; q = 1.0, deflate; q = 0.6, identity; q = 0.3', 'Accept-Language' => 'en ',' Authorization '=>' Bearer TOKEN ',' Client-Login '=>' ',' User-Agent '=>' Ruby '},
body: {"method" => "get", "params" => {}}. to_json)
.to_return (: status => 200,
body: @ campaign_get_body.to_json,
заголовки: units_header)
@ clientV4 = Ya :: API :: Direct :: Client.new (токен: токен, api :: v4)
@ clientV5 = Ya :: API :: Direct :: Client.новый (токен: токен)
end
webmock заменяет методы стандартных библиотек для работы с HTTP, так что при возврате запросов с определенным телом и заголовками возвращается соответствующий ответ.
Если вы ошиблись при настройке, ничего страшного. Когда вы пытаетесь отправить запрос, которого нет в фильтре, webmock сообщит об ошибке и даже расскажет, как правильно написать заглушку.
И мы пишем спецификации:
описывают "когда выполняется запрос"
он "хорошо работает с версией 4" делать
утверждать @ clientV4. v4.GetCampaignsList == @campaigns_get_body
конец
он "хорошо работает с версией 5" делать
assert @ clientV5.campaigns.get == @campaigns_get_body
endend
Rake
Rake реализован настолько гибко и просто, что практически у каждой библиотеки свой путь. Поэтому я просто сказал ему запустить все файлы под названием spec _ *. Rb и которые находятся в каталоге spec:
требуется "bundler / gem_tasks" требуется "rake / testtask"
задача: specdo
Dir.glob ('./ spec / ** / spec _ *. Rb').каждый {| файл | требуется файл}
конец
тест задачи: [: spec]
задача по умолчанию: [: spec]
Теперь наши спецификации могут называться так:
rake test
Или даже:
rake
Правда, тестировать ему пока нечего.
Написание gem
Сначала заполните информацию о gem (без этого связка откажется запускаться). Затем мы пишем в gemspec, какие сторонние библиотеки будем использовать.
gem 'jruby-openssl', платформы :: jruby
драгоценный камень 'грабли'
драгоценный камень 'двор'
группа: testdo
драгоценный камень 'rspec', '> = 2.14 '
драгоценный камень 'rubocop', '> = 0,37'
драгоценный камень 'webmock'
gem 'marker'end
Сделайте
bundle, установите
и перейдите в lib для создания файлов.
Файлы, которые у нас будут:
- client.rb — frontend
- direct_service_base.rb — базовый сервис для работы с API
- direct_service_v4.rb 4 — сервис для работы с API и 4 Live
- direct_service_v5.rb — сервис для работы с API 5
- gateway.rb — пересылает и обрабатывает сетевые запросы =
- url_helper.rb — всевозможные статические функции, которым нет места в константах gateway.rb
- .rb — список доступных методов API Яндекс DIrect
- exception. rb — исключение для отображения ошибок API
- version.rb — служебный файл с настройками версии
Контроллеры для разных версий
Сначала создайте файл с константами, в который мы записываем все функции из API.
contants.rb
модуль YamoduleAPImoduleDirect
API_V5 = {
"Кампании" => [
«добавить», «обновить», «удалить», «приостановить», «возобновить», «архивировать», «разархивировать», «получить»
],
}
API_V4 = [
"GetBalance",
]
API_V4_LIVE = [
"CreateOrUpdateCampaign",
]
endendend
Теперь создайте базовую оболочку службы, от которой мы унаследуем службу для версий 4 и 5.
direct_service_base.rb
moduleYa :: API :: DirectclassDirectServiceBaseattr_reader: method_items,: versiondefinitialize (client, methods_data)
@client = клиент
@method_items = методы_данные
init_methods
конец
защищенный
Definit_methods
@ method_items. each do | method | self.class.send: define_method, method do | params = {} |
результат = exec_request (метод, параметры || {})
callback_by_result результат
результат [: данные]
endendenddefexec_request (метод, request_body)
клиент.метод gateway.request, request_body, @version
enddefcallback_by_result (result = {}) endendend
В конструкторе он получает исходный клиент и список методов. А затем он создает их внутри себя с помощью: define_method.
Почему бы нам не обойтись методом response_to_missing? (сколько драгоценных камней все еще делают)? Потому что он медленнее и не так удобен. А без этого в него попадает медленный интерпретатор после исключения и проверяет is_respond_to_missing? .. Кроме того, созданные таким образом методы попадают в результаты вызова методов, и это удобно для отладки.
Теперь создайте сервис для версий 4 и 4 Live.
direct_service_v4.rb
require "ya / api / direct / constants" require "ya / api / direct / direct_service_base" moduleYa :: API :: DirectclassDirectServiceV4 gateway.request метод, request_body, nil, (API_V4_LIVE.include? (метод)?: v4live: @version)
endendend
В версии 5 сервер не только отвечает на запросы пользователей, но также сообщает, сколько очков было потрачено на последний запрос, сколько осталось и сколько было в текущем сеансе.Наш сервис должен уметь их разбирать (но мы еще не написали, как он это будет делать). Но мы заранее укажем, что он должен обновить поля в основном классе клиента.
direct_service_v5.rb
требуется модуль "ya / api / direct / direct_service_base" Ya :: API :: DirectclassDirectServiceV5 has_key? : units_data
@ client.update_units_data результат [: units_data]
endendendend
Кстати, вы заметили, что за вызов запроса отвечает какой-то загадочный шлюз?
Шлюз и UrlHelper
Класс Gateway предоставляет запросы. В него переместилась большая часть кода из нашего скрипта.
gateway.rb
require "net / http" require "openssl" require "json" require "ya / api / direct / constants" require "ya / api / direct / url_helper" moduleYa :: API :: DirectclassGatewaydefrequest (метод, параметры, сервис = "", версия = ноль)
ver = версия || (service.nil??: v4:: v5)
url = UrlHelper.direct_api_url @config [: mode], ver, service
header = generate_header ver
body = метод generate_body, параметры, версия
uri = URI.parse url
request = Net :: HTTP :: Post.новый (uri.path, initheader = заголовок)
request.body = body.to_json
http = Net :: HTTP.new (uri. host, uri.port)
http.use_ssl = true
http.verify_mode = @config [: ssl]? OpenSSL :: SSL :: VERIFY_PEER: OpenSSL :: SSL :: VERIFY_NONE
response = http.request (запрос)
если response.kind_of? Сеть :: HTTPSuccess
UrlHelper.parse_data ответ, версия
еще
поднять ответ. осматривать
endendendend
Используется стандартный Net :: HTTP, потому что он прост как грабли.Запросы можно также присылать из фарадея. OmniAuth уже работает на нем (о чем я расскажу ниже), поэтому приложение не будет перегружено драгоценными камнями.
Наконец, мы заполняем UrlHelper статическими функциями, которые генерируют URL-адреса, анализируют данные и анализируют единицы (что очень просто):
require "json" require "ya / api / direct / exception" moduleYa :: API :: Direct
RegExUnits = Regexp.new / (\ d +) \ / (\ d +) \ / (\ d +) /
classUrlHelperdefself.direct_api_url (mode =: sandbox, version =: v5, service = "")
format =: json
протокол = "https"
api_prefixes = {
песочница: "api-sandbox",
продукция: "api"
}
api_prefix = api_prefixes [режим ||: песочница]
site = "% {api}. direct.yandex.ru "% {api: api_prefix}
api_urls = {
v4: {
json: '% {protocol}: //% {site} / v4 / json',
мыло: '% {протокол}: //% {сайт} / v4 / мыло',
wsdl: '% {протокол}: //% {site} / v4 / wsdl',
},
v4live: {
json: '% {protocol}: //% {site} / live / v4 / json',
мыло: '% {протокол}: //% {сайт} / live / v4 / soap',
wsdl: '% {протокол}: //% {site} / live / v4 / wsdl',
},
v5: {
json: '% {protocol}: //% {site} / json / v5 /% {service}',
мыло: '% {protocol}: //% {site} / v5 /% {service}',
wsdl: '% {protocol}: //% {site} / v5 /% {service}? wsdl',
}
}
api_urls [версия] [формат]% {
протокол: протокол,
site: сайт,
услуга: услуга
}
покончить с собой.extract_response_units (заголовок_ответа)
matched = RegExUnits.match response_header ["Единицы измерения"]
matched. nil? ? {}:
{
just_used: соответствует [1] .to_i,
units_left: соответствует [2] .to_i,
units_limit: соответствует [3] .to_i
}
конец
частный
defself.parse_data (ответ, версия)
response_body = JSON.parse (response.body)
validate_response! response_body
результат = {данные: response_body}
если [: v5] .include? вер
result.merge! ({units_data: self.extract_response_units (ответ)})
конец
результат
enddefself.validate_response! (response_body) если response_body.has_key? 'ошибка'
response_error = response_body ['ошибка']
поднять Exception.new (response_error ['error_detail'], response_error ['error_string'], response_error ['error_code'])
endendendend
Если сервер вернул ошибку, мы генерируем исключение с ее текстом.
Код кажется очевидным, и это неплохо. Само собой разумеющийся код легче поддерживать.
Клиент
Теперь нам нужно написать сам класс клиента, с которым взаимодействуют внешние интерфейсы. Поскольку большая часть функциональности уже перенесена во внутренние классы, она будет очень короткой.
требуется "ya / api / direct / constants" требуется "ya / api / direct / gateway" требуется "ya / api / direct / direct_service_v4" требуется "ya / api / direct / direct_service_v5" требуется "ya / api / direct / exception "require'time'moduleYa :: API :: Direct
AllowedAPIVersions = [: v5,: v4]
classClientattr_reader: cache_timestamp,: units_data,: шлюз,
: v4,: v5definitialize (config = {})
@config = {
токен: ноль,
app_id: ноль,
авторизоваться:'',
локаль: 'en',
режим :: песочница,
формат :: json,
кеш: правда,
api :: v5,
ssl: правда
}.слияние (конфигурация)
@units_data = {
just_used: ноль,
units_left: nil,
units_limit: nil
}
поднять «Токен не может быть пустым», если @config [: token] .nil?
поднимите "Разрешенные версии API Яндекс Директ: # {AllowedVersions}", если не разрешено AllowedAPIVersions. include? @config [: api]
@gateway = Ya :: API :: Direct :: Gateway.new @config
init_v4
init_v5
start_cache! если @config [: кеш]
yieldselfif block_given?
enddefupdate_units_data (units_data = {})
@units_data.слить! units_data
enddefstart_cache! case @config [: api]
когда: v4
result = @ gateway.request ("GetChanges", {}, nil,: v4live)
timestamp = результат [: data] ['data'] ['Timestamp']
когда: v5
result = @ gateway.request ("checkDictionaries", {}, "changes",: v5)
отметка времени = результат [: данные] ['результат'] ['Отметка времени']
update_units_data результат [: units_data]
конец
@cache_timestamp = Time.parse (отметка времени)
@cache_timestamp
конец
частный
Definit_v4
@ v4 = DirectServiceV4.новый я, (API_V4 + API_V4_LIVE)
enddefinit_v5
@ v5 = {}
API_V5.each do | сервис, методы |
service_item = DirectServiceV5.new (сам, сервис, методы)
service_key = service_item. service_url
@ v5 [service_key] = service_item
self.class.send: define_method, service_key do @ v5 [service_key] endendendendend
Методы версии 4 записываются в свойство v4, методы версии 5, сгруппированные по отдельным сервисам, становятся методами клиентского класса через конструкцию we уже знаете.Теперь, когда мы вызываем client.campaigns.get, Ruby сначала выполнит client.campaigns (), а затем вызовет метод get для получившейся службы.
Последний член конструктора необходим, чтобы класс можно было использовать в конструкции do … end.
Сразу после инициализации он выполняет (если указано в настройках) start_cache !, чтобы отправить API команду для включения кеширования. Версия в настройках влияет только на это; из экземпляра класса можно вызывать методы обеих версий.Полученная дата будет доступна в свойстве cache_timestamp.
И в свойстве units_data будет самая последняя информация о единицах измерения.
Также в проекте есть класс с настройками версии и исключениями. С ними все так ясно, что сказать нечего. Класс с настройками версии генерируется бандлом вместе с проектом.
Ну, в файле direct.rb , вам, , нужно указать те классы, которые должны быть видны пользователю извне.В нашем случае это только клиентский класс. Плюс версия и исключение (они полностью официальные).
Компилировать и заполнять
Для компиляции гема вы можете следовать руководству с RubyGems.org (здесь нет ничего сложного). Или примените Mountable Engine из Rails.
А потом закачиваем на rubygems — вдруг этот гем может пригодиться не только нам.
Как получить токен из Ruby on Rails
Войти из Rails в API Yandec и получить токен — очень простое дело для любого разработчика… если не в первый раз.
Как мы уже узнали, для доступа к Direct API требуется токен. Из помощи Яндекса следует, что перед нами старый-добрый OAuth3, которым пользуется куча сервисов, в том числе Twitter и Facebook.
Для Ruby существует классический гем omniauth, от которого наследуются реализации OAuth3 для различных сервисов. Уже реализован и omniauth-yandex. Мы постараемся с ним разобраться.
Создадим новое приложение rails (добавим в рабочие проекты после того, как узнаем).Добавляем в Gemfile:
gem "omniauth-yandex"
И делаем бандл-установку.
А дальше пользуемся любым мануалом по установке Omniauth аутентификации для рельсов. Вот пример для твиттера. Переводить и пересказывать, думаю, не стоит — статья получилась огромной.
У меня сработал пример, описанный в статье. Единственное исправление заключалось в том, что я не записывал дополнительные индексы в таблицу User, потому что SQLite их не поддерживает.
Правда, в статье не указано, где прячется токен. Но это вовсе не секрет. В SessionController его можно получить через
request.env ['omniauth.auth']. Credentials.token
Просто помните — каждая такая аутентификация будет генерировать токен снова. И если позже вы попробуете использовать скрипты с прямым токеном, сервер скажет, что старый уже не подходит. Необходимо вернуться в настройки приложения Яндекс, указать URL отладочного обратного вызова (__ https: // oauth.yandex.ru/verification_code__) еще раз, а затем повторно сгенерируйте токен.
А еще лучше создать отдельное приложение для статического токена, чтобы он не мешал отладке.
Ссылки
JavaScript API Яндекс.Карты — версия 2.0 / Sudo Null IT News
Здравствуйте! Меня зовут Сергей Константинов, я возглавляю команду разработчиков API Яндекс.Карт.Сегодня мы запустили новую версию JavaScript API — 2.0. В общем, на этом месте должна быть перепечатка поста из блога Яндекса, но в этот раз мы решили отойти от традиции :).
Вместо сухого официального сообщения я постараюсь в теплой лампе рассказать вам, как и почему мы сделали JavaScript API 2.0.
Думаю, те из вас, кто знаком с нашим API, легко поймут, что это не косметическое обновление, а полный выпуск почти нового продукта. Мы полностью переписали ядро, расширили функционал и добавили ряд новых функций — более глубокая поддержка мобильных устройств, многоязычие, HTTPS, статистика трафика и т.д. (см. Наш промо-сайт).
Но к такой работе нас привели не фичечки и не новый дизайн. Мы запустили первую версию API в ноябре 2008 года. С тех пор прошло более трех лет, и наше понимание того, для кого и для чего мы делаем API, несколько изменилось.
Мы всегда представляли нашу аудиторию в виде некой пирамиды: основание пирамиды — наши пользователи; средний уровень — бизнес с использованием картографического API; и вишенка на торте — разработчики.
Первую версию API мы написали в первую очередь для разработчиков.Мы думали, что нам нужно убедить разработчиков выбрать нашу технологию, потому что бизнес доверяет решение о выборе технологии разработчикам, а пользователи в конечном итоге увидят именно ту услугу, которую разработчики сделали для них.
Как показала практика, тогда это было правильное решение — наш API быстро завоевал рынок. Но со временем мы начали понимать, что на практике все происходит немного по-другому, и в этой системе есть обратная связь. Возможно, что-то нам помог пример одной компании с фруктовым логотипом, которая начала выпускать продукт, ориентированный в первую очередь на конечного пользователя; пользователь выбрал свой продукт, а бизнес, стремясь удовлетворить своих пользователей, сформировал заказ на разработку новой платформы.
Мы поняли, что делаем продукт не только для разработчиков, но и для пользователей . Если пользователю удобно и приятно пользоваться нашими картами и он будет требовать использования наших карт из любимых сервисов, то мы сможем считать свою задачу выполненной.
Проблема в том, что мы сами не взаимодействуем с пользователями напрямую — мы делаем это косвенно, через разработчиков, использующих наш API. Задача по большому счету распалась на два больших блока:
— сделать так, чтобы пользователю было так легко и приятно работать с нашей картой;
— чтобы разработчики делали удобные и красивые сервисы на нашем API.
Площадкой для экспериментов стал сервис Яндекс.Карты, где с октября прошлого года работает вторая версия API. Мы очень серьезно подошли к вопросу о внешнем виде нашей карты и начали настраивать поведение карты для каждого браузера отдельно. Не скажу, что это было легко — в итоге пришлось написать две-три реализации ключевых интерфейсов.
(На самом деле, пока я готовил этот текст, картинка устарела — нам пришлось внести некоторые изменения в связи с выходом новых версий браузеров.)
Мы серьезно забеспокоились о размере кода плагина и изолировали несколько сборок от API. Теперь ядро весит всего 60 Кб, и загружается принудительно асинхронно.
Наконец, мы значительно обновили дизайн стандартных элементов карты (панели инструментов, панели трафика и т. Д.) И надписей на карте. Но, конечно, это все — только начало. Мы будем постоянно заниматься улучшением внешнего вида, плавности и красивого интерфейса.
Переходим ко второй задаче — помочь разработчикам создавать хорошие сервисы.Мы всегда старались оперативно отвечать на вопросы в нашем клубе и письма в поддержку, но с выходом API 2.0 мы окончательно поняли, что проблемы разработчиков — это, по сути, наши проблемы, и мы должны сделать все, чтобы их решить. Например, мы полностью перенесли весь макет в настраиваемые теги (а точнее настраиваемый тег — ymaps), чтобы сторонние css-reset или стили темы CMS не нарушали дизайн карточек.
Мы стараемся предоставить разработчикам не только API, но и советы, как сделать ваш сервис хоть немного лучше.Например, попробуйте использовать технологию кластеризации — возможно, ваш сайт станет удобнее и красивее :).
В презентации к моему докладу на конференции RIT ++ все это описано более подробно. Но это, по сути, только верхушка айсберга — в версии 2.0 мы реализовали множество интересных технологических решений — собственный touch-framework, каскадную систему опций, одновременное отображение нескольких слоев в разных проекциях (да, на нашем движке теперь можно легко и просто (например, плитки от OSM) и многое другое.Приходите 26 апреля на наш API. В офис Яндекса — мы подробно расскажем и покажем, как и что мы сделали в API 2.0.
Ну и в заключение хочу вкратце сформулировать, почему мы все-таки сделали новый API. Во-первых, потому что время не стоит на месте — появляются новые платформы, технологии и рынки — и вам нужно работать очень быстро, чтобы просто оставаться на месте. А во-вторых, потому что что-то изменилось в нашем собственном восприятии того, какой продукт мы делаем и для кого.
Вопросы по новому API можно задавать прямо в комментариях 🙂
Яндекс.Реклама и SEO-новости 4 квартал 2016
Русский поисковый маркетингРусский поисковый маркетинг рад сообщить нашим читателям о последних новостях в области рекламы и SEO от Яндекса со времени нашего последнего новостного блога.Ближе к концу третьего квартала Яндекс Директ анонсировал несколько новых обновлений, которые помогут рекламодателям на российском рынке. В блоге Яндекс для веб-мастеров была опубликована важная информация о новой версии API для веб-мастеров. Следите за обновлениями в этом квартале.
Яндекс Новости SEO
Яндекс API Webmaster 3.0: В прошлом месяце Яндекс объявил о запуске новейшей версии API для веб-мастеров. Новая версия будет содержать некоторые обновления для лучшей аналитики, но по-прежнему будет включать в себя все возможности и функции версии 2.0 программное обеспечение. Яндекс просит всех веб-мастеров перейти на последнюю версию, прежде чем закрыть предыдущую.
Яндекс Рекламные новости
Яндекс.Директ и синонимы: Яндекс внедряет алгоритм, который будет автоматически показывать объявления по запросам, содержащим синонимы ключевых слов рекламодателя. На аукционе Яндекс.Директа используется исходная ставка ключевого слова (например, «женская обувь»), синоним которой (например, «женская обувь») совпадает с объявлением. Статистика по синонимам отображается как часть исходного ключевого слова вашей кампании.
Два новых отчета для рекламодателей Яндекс.Директа: Яндекс.Директ предлагает эти два новых отчета по поисковым запросам и дополнительным ключевым словам, которые помогают улучшить кампании рекламодателей. Отчеты по поисковым запросам охватывают точные поисковые запросы, по которым показываются объявления, а отчеты по дополнительным ключевым словам включают ключевые слова, предлагаемые инструментами Яндекс.Директа для объявлений рекламодателей. И отчет по поисковым запросам, и по дополнительным ключевым словам можно просмотреть на уровне кампании и на уровне аккаунта.
Ленты для динамической рекламы: Яндекс.Директ теперь может использовать YML-файлы с информацией о товарах для создания динамической рекламы. Это помогает рекламодателям более легко управлять своей рекламой и предоставлять лучшее описание продукта, которое способствует конверсиям.
Новые графические объявления Яндекс.Директа: Новые графические объявления Яндекс.Директа позволяют рекламодателям размещать в Яндекс.Директе изображения большого размера с текстом, логотипом и ссылкой на целевую страницу.
Новое отображение интерфейса для стратегий показа: Яндекс.Прямые рекламодатели, вероятно, заметили новый дизайн интерфейса для стратегий показа. Опции остаются прежними, просто они организованы по-новому.
Более подробная информация о корректировках ставок по целевой аудитории в мастере отчетов: Мастер отчетов теперь имеет новое сечение, показывающее всю статистику корректировок ставок, примененных к целевым аудиториям.
Обновления инструмента бюджетной оценки: Инструмент бюджетной оценки теперь предоставляет отдельные оценки мобильных показов, прогнозы еженедельных расходов и возможность выбора валюты, используемой в расчетах.Новый алгоритм также повысил точность и использует статистику за выбранный период.
Об авторе
Русский поисковый маркетинг
RussianSearchMarketing.com — новостной и информационный сайт международной группы развития бизнеса Яндекса, охватывающий российский рынок поиска и цифровой рекламы. Мы предоставляем широкий спектр информации, охватывающей тенденции рынка, анализ отрасли, плату за клик (PPC), медийную рекламу и обучение на Яндекс.
Google Translate API и App Inventor: альтернатива Яндекс
2 сентября, 2016 Блог КаренЭто гостевой блог главного тренера Массачусетского технологического института Ивона Морина
В настоящее время количество подключенных устройств, доступных через Интернет, привело к подключению людей. Инфраструктура, поддерживающая все коммуникации между устройствами, также известна как Интернет вещей (IoT).
Этот блог не предназначен для рекламы Google API и не ставит своей целью преуменьшение значительных функций и возможностей Яндекс. Авторы только хотят поделиться с читателями своим опытом, который, по его мнению, может служить определенной цели, поскольку можно захотеть узнать, как перевести что-то на язык, который еще не указан в репертуаре Яндекса, или создать приложение с множеством различных API машинного переводчика для анализа и сравнения. Наша цель в этом блоге — предоставить пользователю лучшее представление о том, как фильтровать результат из Интернета с помощью блока парсера JSON или текстовых функций App Inventor.Конечно, при использовании Яндекса App Inventor уже позаботился об этих проблемах, поэтому пользователям не нужно о них беспокоиться. Но с API, отличными от Яндекс, вы должны знать, как манипулировать строками, чтобы получить желаемый результат; это то, что мы собираемся вам показать.
Для этого мы создаем приложение со следующими компонентами для графического интерфейса:
- Кнопка счетчика, которая будет использоваться для выбора желаемого языка из раскрывающегося списка. Но для целей этого блога список включает только 4 языка (французский, испанский, английский и гаитянский креольский)
- Текстовое поле, используемое для получения пользовательского ввода для перевода.Подсказка для этого текстового поля содержит шаги, которые помогут пользователю начать работу.
- Две метки используются для отображения вывода переведенного текста с каждого сервера (Google и Яндекс).
Чтобы начать использовать API машинного переводчика, нам необходимо настроить учетную запись для службы, если мы не используем встроенную процедуру или метод Яндекса, созданные для этой цели в App Inventor. Поскольку мы используем Google Translate API и Яндекс, нам нужна как минимум учетная запись для Google, которая у нас уже есть.После создания учетной записи нам нужно перейти в консоль API, чтобы создать проект и включить API для этого проекта. При получении учетных данных API для проекта выберите ключ API браузера. Если в этом процессе требуется помощь, следуйте документации API, доступной в пользовательской консоли. Теперь, когда ключ API создан, как его использовать? Это вопрос, на который мы обещаем ответить далее.
Как упоминалось ранее, одним из преимуществ использования Яндекса является то, что App Inventor уже учел метод, используемый для выполнения запроса к веб-API, и способ обработки ответа, и, кроме того, не нужно беспокоиться о создании учетной записи.Но когда дело доходит до настраиваемого API, вам нужно знать, как с ним обращаться, и это то, что мы собираемся вам сейчас показать. Прежде чем мы это сделаем, давайте взглянем на компоненты, задействованные в этом приложении, просмотрев список в интерфейсе разработки.
Если вы посмотрите на рис. 1a слева вверху, внизу есть два невидимых компонента. Один из них — это веб-компонент, который будет использоваться для доступа к Google API через URL-адрес, а другой — компонент Яндекса, доступный в App Inventor для решения этих задач.Если мы посмотрим на документацию Google Translate API, мы увидим, что для того, чтобы сделать запрос на перевод текста через Google Translate API, мы должны использовать следующий URL: https: //www.googleapis.com/language/translate / v2? параметры
Где параметры:
- Ключ API: используйте параметр ключа для идентификации вашего приложения.
- Целевой язык: используйте целевой параметр, чтобы указать язык, на который вы хотите перевести.
- Исходная текстовая строка: используйте параметр q, чтобы указать текст для перевода.
На этом этапе нам нужно создать три переменные, которые будут объединены путем конкатенации, чтобы составить URL-адрес API Google, необходимый для обеспечения успешного ответа (код 200).
По соображениям безопасности указанный выше ключ API был изменен и поэтому не будет работать, если используется как есть.
Давайте посмотрим на этот блок кода, прежде чем говорить о том, как мы делаем запрос к обоим API.
Этот блок кодов сообщает App Inventor, что после того, как пользователь выберет язык из списка:
- Присвойте соответствующий код переменной languagecode.
- Скрыть клавиатуру.
- Установите URL-адрес API Google на объединенный текст в блоке соединения.
- Получите ответ.
- Запросите такой же перевод в яндекс.
Вот разница между запросами к обоим Серверам с использованием их API.
Как они отвечают на запрос? Мы сосредоточимся только на том, как сервер Google ответил, поскольку наша цель — показать, как отфильтровать целевой ответ из возвращенных метаданных.
App Inventor уже обработал результат, возвращенный Яндексом в этом событии:
Теперь предположим, что ответ от Google отображается примерно без анализа, форматирования или фильтрации. Как бы это выглядело?
С помощью этого блока кода:
У нас будет что-то вроде этого на выходе:
Как вы можете заметить слева, перевод Яндекса был выполнен, как и ожидалось, тогда как сервер Google вернул больше, чем мы ожидали в качестве ответа, и нам нужно найти способ отфильтровать желаемый ответ из того, что возвращается.Но хорошая новость заключается в том, что независимо от того, программист вы или нет, App Inventor позволяет обойти все проблемы программирования, которые могут помешать нам получить желаемый результат. Вот почему мы сначала рассмотрим проблемы людей, не знакомых с JavaScript или каким-либо языком программирования.
Наша цель — получить строку символов между двойными кавычками, включая Me gustaria ver un cambio de tecnologia la forma de pensar. Для этого мы исследовали и обнаружили, что открытая кавычка перед Me находится на 61-й позиции в строке.Мы также выяснили, что длина оставшейся строки, следующей за закрывающей кавычкой, равна 111. С учетом сказанного, давайте использовать сегментный текстовый блок для извлечения целевой строки следующим образом:
Чтобы избавиться от кавычек, мы прикрепили предыдущий блок к блоку замены всего текста, как показано ниже:
Давайте посмотрим на результат, если этот блок подключен к событию googleAPI.GotText.
Окончательный код Inventor приложения для этой версии
Мы только что показали вам, как получить желаемый ответ после перевода с сервера с помощью простых арифметических вычислений и функций обработки текста в App Inventor.Возможно, есть люди на другой стороне мира пользователей App Inventor, которые все еще хотят узнать другой способ справиться с ответом. Я предполагаю, что эти люди могут иметь некоторое представление о языке JavaScript или, возможно, они слышали о JSON (JavaScript Object Notation), предназначенном для использования в этой практике в качестве альтернативы тому, что мы только что сделали. Если у нас есть веб-компонент, добавленный в пользовательский интерфейс как тот, который в нашем случае называется googleAPI, при щелчке по этому компоненту в редакторе блоков вы увидите такой блок:
Если мы продолжим наше расследование так же, как мы начали ранее, мы можем прикрепить содержимое ответа к этому блоку, чтобы увидеть, как будет выглядеть результат:
Декодер JSON App Inventor изменил содержимое ответа на вывод, отображаемый фиолетовым цветом.Эти выходные данные привели к карте, показанной ниже:
Эта карта говорит нам, что если мы используем список списка, то мы можем получить прямой доступ к последнему элементу, создав эту цепочку списка выбора ниже:
Если мы используем цикл, мы можем довести эту цепочку до определенного уровня абстракции, как показано ниже:
Вот результат, следующий за блоком кода выше:
Окончательный код Inventor приложения для этой версии
Вкратце, возможно, это было долгое упражнение, но мы рассмотрели наши основные цели, которые заключались в том, чтобы предоставить пользователям альтернативу Яндекс API в качестве средства для перевода текста и различных стратегий или методов, которые могут использоваться для конкретного ответа из содержимого ответа.Среди используемых методов были использованы текстовые функции App Inventor и блок JSON веб-компонента. Приложение, созданное для этого блога, может дать читателю возможность сравнить точность перевода Google и перевода Яндекса.
Используйте этот QR-код, если хотите попробовать приложение:
Facebook блокирует доступ к данным новому приложению «Яндекс» для поиска в социальных сетях всего через три часа после запуска — TechCrunch
Яндекс умолял Facebook не закрывать приложение для социального поиска Wonder, запущенное сегодня утром.Но объяснение, которое юристы Яндекса прислали нам, почему это соответствует политике Facebook, не помешало Facebook блокировать все вызовы API из Wonder, подтверждает Яндекс. Facebook сообщил мне, что сейчас обсуждает политику с Яндексом. Этот шаг следует тенденции, когда Facebook агрессивно защищает свои данные.
Wonder имеет или, лучше сказать, имел большой потенциал. Когда в начале этого месяца я сообщил новость о том, что Яндекс готовит Wonder, я подробно описал, как голосовое приложение для поиска в социальных сетях для iOS позволяет людям видеть, какие друзья из местных предприятий посещали или фотографировали, какую музыку они слушали и какие новости они читали.По сути, он реорганизовал данные Facebook в гораздо более мобильный, доступный для поиска формат.
К сожалению, политика платформы Facebook гласит: «Вы не должны включать данные, полученные от нас, в какую-либо поисковую систему или каталог без нашего письменного разрешения». Facebook не подтвердил, что он заблокировал Wonder, хотя Яндекс сообщил мне, что получил электронное письмо от Facebook, что его доступ к данным был отменен. Wonder все еще может получить доступ к Twitter, Foursquare и, что интересно, к данным Instagram.Однако любой пользователь Wonder, который пытается войти в систему через Facebook, получает эту ошибку:
Хотя Facebook подтвердил свою политику в отношении конкурирующих поисковых систем, все еще остается в силе. Обе компании в настоящее время обсуждают будущее Wonder. Однако на данный момент более крупная интеграция Google в России с Facebook по-прежнему будет иметь доступ к данным социальной сети.
Применение политики подтверждает слухи о том, что Яндекс закроет Wonder.Яндекс попытался предотвратить это и отговорить Facebook, отправив нам следующее заявление, которое мы напечатали сегодня утром вместе с запуском:
Мы отмечаем, что Яндекс не нарушает Политику платформы Facebook, предусматривающую ограничение использования данных, полученных из Facebook, в поисковой системе или каталоге по той причине, что Wonder не является поисковой системой или каталогом. Наше приложение — это персональный помощник, который помогает просматривать и систематизировать информацию, которая доступна исключительно для соответствующей учетной записи соответствующего пользователя и связана с ней в различных социальных сетях и службах.
Напротив, [а] поисковая машина традиционно понимается как инструмент определения местоположения информации, который автоматически индексирует десятки тысяч общедоступных веб-сайтов, извлекает информацию с неограниченным доступом и является свободно доступным для любого пользователя Интернета. Кроме того, мы хотели бы отметить, что Wonder запрашивает [у] пользователя конкретное разрешение на доступ к каждой части информации, доступной пользователю через социальную сеть или службы, и никогда не получает доступ к информации или данным, которые выходят за рамки согласия, доступности или степени. разрешения, явно предоставленного пользователем приложения.Также следует отметить, что приложение не выполняет никаких автоматических операций, если они специально не разрешены пользователем.
Но на прошлой неделе Facebook заблокировал доступ приложения Voxer для голосовых сообщений к функции «Найти друзей», которая позволяет людям воссоздавать свой социальный граф Facebook в других приложениях. Facebook сказал мне, что это произошло потому, что он не хотел, чтобы конкурирующие приложения для обмена сообщениями использовали его данные, если они не вносили значительный вклад в Facebook. Voxer предлагал только очень скрытую опцию «поделиться в Facebook», и, поскольку приложение было разработано для личных сообщений, немногие люди, вероятно, использовали эту опцию.
Похоже, что Facebook созрел до такой степени, что готов торговать своим статусом «открытой платформы» в обмен на то, чтобы не дать конкурирующим приложениям украсть ее ценность и пользователей. Если Facebook не будет деликатно справляться с этими ситуациями, это может вызвать пугающий эффект, который отговорит других разработчиков от построения на его основе.