Рубрика «api» - 85

image

Предисловие

Наша команда разрабатывает финансовые инструменты, в том числе открытые платежные API, и как многие проекты, работающие по практике continuous integration мы одновременно с созданием проекта 3 года назад начали думать над тем, как улучшить покрытие проекта тестами и добиться максимальной стабильности нашего кода при довольно частых изменениях (мы иногда устанавливаем обновления на продуктовую среду несколько раз в день). Особенно это важно в трех аспектах:

  • мы предоставляем наши API интерфейсы в открытый доступ клиентам и важно, чтобы все взаимодействие четко соответствовало описаниям спецификаций
  • мы интегрируемся с большим количеством других финансовых сервисов и банков, и помимо покрытия тестами своего кода мы вынуждены также покрывать интеграционными тестами взаимодействие с test (а иногда и prod) средой сторонних систем
  • наша внутренняя архитектура включает в себя большое количество микросервисов, которые общаются между собой по HTTP API

В этой статье я хотел бы поделиться опытом и показать пример, как мы разрабатываем тесты для API интерфейсов включающих в себя как сервер-сервер взаимодействие, так и работу через браузер.  Для демонстрации я приведу простой пример тестирования процесса оплаты банковской картой через наш платежный шлюз с отправкой результата тестов в Telegram.
Читать полностью »

1000 и 1 репост: гайд по кнопке «поделиться» в русских соц сетях - 1

Недавно передо мной встала задача — провести на нашем сайте «народное голосование» за номинантов на премию в нашей отрасли (франчайзинг). В рамках народного голосования человек размещал на своей странице в социальной сети пост, рассказывающий о том, за кого именно он проголосовал. Чтобы реализовать эту задачу, мне пришлось перелопатить массу информацию о том, как именно устроен шаринг в различных сотсетях, и как лучше размещать эти самые посты. Кроме того, была создана система подстчета количества размещенных репостов.

К сожалению, большая часть информации на эту тему, которую можно найти на хабре или stackoverflow — уже устарела, поэтому я постарался превратить этот в пост в актуальный мега-гайд по шерингу страниц в соц сетях. Я рассмотрел 5 наиболее популярных в России социальных сетей: контакт, facebook, твиттер, одноклассники и мой мир. Для каждой социальной сети приведен актуальный URL для шаринга, небольшие советы и рекомендации по использованию, а также JS код, позволяющий узнать количество шеров конкретного URL в каждой из соц. сетей.

В конце статьи есть сводная таблица со всеми ссылками и кратким описанием возможностей каждой из сетей.
Читать полностью »

1 июня 2016 года Instagram отключит от своего API все приложения, которые не прошли модерацию. Что делать если вы в их числе?

Предыстория

Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.

Сначала расскажу как мы использовали официальный API:

  1. При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
  2. Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
  3. Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
  4. Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).

Реализация

У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Читать полностью »

imageГордон Винтроб, редактор «GET PUT POST» — электронной рассылки об API приложений, «захвативших» рынок, недавно взял интервью у Кристины Кордовой, начальника отдела работы с клиентами Stripe — одной из самых заметных компаний среди наших западных коллег. Ранее, в рамках цикла статей о платежном сервисе, мы рассказали о его основателях — братьях Коллисон, а также о том, с чего начинал Stripe, как он выглядит изнутри, как стал многомиллиардной компанией и чем завоевал любовь своих партнеров. Сегодня же поговорим о подходе компании к партнерским отношениям и о том, как они помогают платформе расти, а также обсудим вопрос построения процесса разработки API, максимально учитывающего клиентские потребности. Далее непосредственно интервью.
Читать полностью »

image

При выполнении аналитических задач SEO, SMM, маркетинга мы столкнулись с непомерно растущим количеством инструментов для обработки данных. Каждый заточен под свои возможности или доступность для пользователя: Excel и VBA, сторонние SEO-инструменты, PHP и MySQL, Python, C, Hive и другие. Разнообразные системы и источники данных добавляют проблем: счетчики, рекламные системы, CRM, инструменты вебмастера Яндекса и Google, соцсети, HDFS. Необходим инструмент, совмещающий в себе простоту настройки и использования, модули для получения, обработки и визуализации данных, а также работы с различными типами источников. Выбор пал на iPython notebook (с недавних пор Jupyter notebook), представляющий собой платформу для работы со скриптами на 40 языках программирования. Широкое распространение платформа получила для научных вычислений, среди специалистов по обработке данных и машинному обучению. К сожалению для автоматизации и обработки данных маркетинговых задач Jupyter notebook используется крайне редко.
Читать полностью »

VirusTotal: проверяем файлы на вирусы в один клик - 1

Может быть множество причин, почему на том или ином компьютере вы не поставите антивирусное программное обеспечение: слабое железо или простое нежелание делить его с постоянно жрущим ресурсы антивирусом, уверенность в своих действиях на компьютере или дороговизна, особенно для серверных версий операционных систем. С последним, кстати, постоянно сталкиваются пользователи виртуальных серверов (так называемых VPS / VDS), конфигураций большинства которых едва хватает для нормальной работы современного браузера, а провайдер предоставляет исключительно серверную версию Windows.

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

Наиболее простым и популярным среди таких ресурсов (и приятный лично мне) является virustotal.com, у которого есть открытое API и использование его от вас ничего не требует, кроме регистрации на сайте.
Идеальным вариантом для меня стала бы реализация с дополнительной кнопкой в контекстном меню Windows, которое появляется при клике правой кнопкой мыши по любому файлу.

VirusTotal: проверяем файлы на вирусы в один клик - 2
Читать полностью »

в 5:35, , рубрики: api, perl, python, Zadarma, метки:

API к zadarma.com на perl и python - 1
У zadarma.com есть API к их сервисам на языке php, но на моих серверах этот язык отсутствует. Ставить php ради обращений к задармам желания не было. Поискал в интернете не нашел ничего для perl и python.
Написал для себя, что получилось под катом.
Читать полностью »

В эту зиму я заказывал картошку через интернет. Только поставщиком служил не условный магазин «зверь в кепке», а Facebook — один парень завел там страничку и продавал через нее урожай с фермы.

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

Перенос материалов Facebook-страниц на сайт: обзор инструментов - 1
“Легким движением руки страницы превращаются в элегантные...”

Обсудили эту историю с коллегой, и в процессе родилась мысль: если есть люди, которые начали вести страничку компании на Facebook, и есть API соцсети, которое позволяет экспортировать разделы и материалы публичной страницы, их можно “поженить”. То есть дать выкачать контент и автоматически раскидать его по шаблону сайта. Погуглили: оказалось, в мире есть минимум пять команд, которые написали свои решения — причем предоставляют веб- и мобильную версии сайта в одном пакете.

Читать полностью »

Введение в Roslyn. Использование для разработки инструментов статического анализа - 1

Roslyn является платформой, предоставляющей разработчику различные мощные средства для разбора и анализа кода. Но наличия таких средств недостаточно, нужно понимать, что и для чего необходимо использовать. Данная статья несёт цель ответить на подобные вопросы. Помимо этого, будет рассказано об особенностях разработки статических анализаторов, использующих Roslyn API.
Читать полностью »

Привет! 18-20 мая 2016 года в Маунтин Вью, Калифорния, пройдет юбилейная, десятая по счету конференция Google I/O, посвященная самым актуальным передовым трендам в технологиях и программном обеспечении от Google.

Google I-O Extended 2016 - 1

Лететь через пол мира на одну конференцию — удовольствие то ещё, да и если всех желающих собрать — никаких конференц-холлов не хватит. Поэтому мы рады вам сообщить, что Google I/O будет проходить и в самых крупных городах России.

Google I/O Extended — уникальная возможность стать участником одного из самых крупных слётов любителей Google-технологий. Всё будет происходить в онлайн-режиме, так что вы сможете вместе с представителями GDG в Маунтин Вью наблюдать за ежегодной презентацией самых крутых новинок в IT мире! Сейчас I/O Extended включает более 550 ивентов в 94 странах на 6 континентах и охватывает всю планету.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js