Ответы пользователя по тегу API
  • Как приложения учёта денег получают доступ к мобильным банкам?

    @rPman
    мне кажется coinkeeper берет данные из sms у них в описании это и написано а еще туда можно вручную заводить транзакции

    p.s. доступ к api юрикам банки дают, за отдельные деньги и отдельным договором
    Ответ написан
    Комментировать
  • Через какой API пополнить моб операторов РФ?

    @rPman
    Единственный самый дешевый 'api, доступный частникам', это мобильный банк сбербанка (50р в месяц). Т.е. буквально ставишь модем и пилишь отсылку sms на номер 900 (кстати может тарифицироваться как обычные sms, например 1.8р за сообщение но это уже смотреть тариф ОПСОСа), там куча операций, начиная с пополнения мобильных счетов, денежных переводов и кончая коммунальными платежами (меньше список чем тот что доступен в сбербанк онлайн, так как если я верно понимаю, за это сберу коммунальщики должны дополнительно отстегивать или еще какие условия).

    Все остальные - дополнительным договором и создание юрика. И да, так как вы физик, большие объемы операций будут вызывать вопросы и высокая вероятность блокировок и вызовов на ковер....
    Ответ написан
    Комментировать
  • Как сделать многопоточное выполнение команд?

    @rPman
    Абсолютно все действия, требующие на выполнение времени, должны быть асинхронными, запускаемые в отдельных потоках. Как минимум это работа с базой данных, сетевыми запросами и даже файлами.

    Проще - нужно чтобы сам обработчик работал не в одном потоке а в нескольких или даже процессах/серверах, т.е. запускай несколько обработчиков, а центральный, через который идет подключение, должен только перенаправлять запросы.
    Ответ написан
    Комментировать
  • Как принимать только актуальных данные по API в PHP без базы?

    @rPman
    где то хранить что куда уже отправлял придется, можно не заводить идентификаторы, а считать хеш от ключевых параметров, по которым определяешь уникальность (заголовок или все содержимое), этот хеш и бери и храни как идентификатор.

    тебе нужна key-value база данных, если данных мало и они влезают в память массивом $index[$hash]=true то тогда храни в файле в сериализованном виде var_export/serialize/json_encode или даже по 1 строке на запись - читать array_flip(file('имя файла'))

    p.s. бери sqlite, на столько простой удобной и неприхотливой базы данных не найти, реализованна в файле, ничего не требует для администрирования, работает везде...
    Ответ написан
    Комментировать
  • Как загрузить изображение на бесплатный хостинг с API?

    @rPman
    Первый же результат в гугле, на javascript для imgbb, пишут что работает

    там же такой простой api что не так то?

    p.s. про http забудь, этот протокол умрет как гопер или фтп, проблем он создает столько что лучше его не поддерживать принципиально
    Ответ написан
  • Как можно отслеживать изменения внешних Api?

    @rPman
    В общем случае никак.

    Иногда может помочь грамотное логирование ответов об ошибках, а так, только следить за официальными блогами/твиттерами/отчетами или даже github проектов.

    p.s. правильный сервис не должен менять api на ходу, а при необходимости создается новая версия с продолжением поддержки старой либо сыпать ошибками, если это невозможно.
    Ответ написан
    Комментировать
  • Как правильно интегрировать платежные сервисы с разными бизнес-правилами на id-транзакций?

    @rPman
    Сервисы взаимно независимые?

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

    Когда работаешь с чужими сервисами и не может повлиять на них, ничего кроме самостоятельно поддерживать свою связку части их базы со своей, и слава богу что у вас только один идентификатор! а не так, что может понадобится заводить и следить за состоянием части базы из стороннего сервиса.
    Ответ написан
  • Универсальный API(платный/бесплатный) для скачивания фото/видео c соц. сетей?

    @rPman
    видео:
    не api но консольная утилита, youtube-dl кажется одна из лучших, качает с youtube, vimeo, и туева кучи сайтов, обновляется оперативно под изменения форматов.
    Ответ написан
    Комментировать
  • Порекомендуйте api для теле2?

    @rPman
    Биржа гигабайтов, минут и смс теле2 - фикция, курсы отображаемые в интерфейсе в графиках и ордера не соответствуют друг другу, при создании ордера стоит лимит по цене, а значит по нему там 100500 ордеров, и они никогда не исполнятся.

    Служба поддержки тупо отказывается отвечать на вопросы, включают игнор и переключают на другого оператора.
    Ответ написан
    Комментировать
  • Как получить доступ на локалке к своему удалённому серверу, если стоит защита от CSRF?

    @rPman
    CSRF это защита при работе с сайтом из браузера!
    Если же вы работаете из вашего языка программирования, вашей платформы и т.п. то вы можете установить у запросов все необходимые куки и идентификатор сессии, которые возьмите из браузера, зайдя на оригинальный сайт.

    Ну и общее - проблемы, которые создает вам сайт это проблемы заказчика, пусть он решает их так как ВАМ удобно.

    Если честно я не вижу проблемы, решение я описал выше
    Ответ написан
  • Сильно ли передача по http медленнее, чем напрямую?

    @rPman
    Если вам нужна скорость, то уходите от постоянного переподключения к сервисам.

    Конечно, современные веб-сервера и браузер умеют переиспользовать подключение для http rest, но это стоит перепроверить в вашем случае. Если идут постоянные переподключения то высокие пинги могут превратить работу вашего сервиса в лагучую дрянь (один https добавит пару туда-сюда отправлений).

    websocket изначально по определению однократно открывает подключение а затем использование открытого канала возможно в обе стороны (с http rest только в одну и с оговорками в сторону клиента, читай не эффективно).

    А еще вопрос, как у вас организован код обработки http rest. Если это старый классический подход, когда на каждый запрос запускается php скрипт это это еще и высоченная нагрузка на сервер, переделывайте (а точнее убирайте эту фигню и оставьте websocket), так как разница подходов дает ускорение на пару тройку порядков (это не шутка и не преувеличение).

    у http rest только одно достоинство - почти бесплатная горизонтальная масштабируемость на сервере.
    Ответ написан
  • Как "организовать" скрипт действий на сайте?

    @rPman
    2 кардинально разных подхода:

    * вы изучаете, какие запросы совершает браузер, когда вы совершаете действия настранице (в браузере F12 закладка network, там можно на строке правую кнопку нажать и получить готовую команду утилиты curl к примеру), изучаете что из себя представляет запрос, выделяете параметры (что есть идентификатор сессии, что номер поста и т.п. - эмпирически и следуя логике как вы бы сами как програмист сделали) а затем повторяете все то же самое или только необходимое (например можно не грузить картинки стили и прочее) на любом языке програмирования, скорее всего загружая страницы придется их парсить, разбирать ссылки чтобы знать какие параметры подставлять в следующие запросы.

    * используя расширение к барузеру (например greasemonkey/tempermonkey), либо используя headless браузер типа silenium с подключением к вашему любимому языку или напрямую однократно добавив функции в консоли браузера (если сайт single page app без перезагрузки страницы) - полезно на время отладки, написать необходимый код прямо на javascript. Например чтобы кликнуть на ссылку достаточно написать $('css селектор до ссылки/кнопки').click()

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

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

    @rPman
    В штатном клиенте telegram пишите в поиск нужный вам канал (даже тот в котором вас нет), выбираете в результатах поиска его, не нажимаете join, нажимаете на заголовок, листаете вниз и смотрите список его участников, нажав на каждого по очереди сможете узнать их id (если такого нет телефон не будет показан, если он не у вас в контактах), в общем стандартный публичный профиль включая список каналов, пересекающихся с вашими (т.е. не все а только те на которых вы есть)
    Ответ написан
  • Как хранить BTC кошельки пользователей?

    @rPman
    https://github.com/bitcoinjs/bitcoinjs-lib и можете реализовывать полноценный кошелек на клиенте, даже без хранения приватных ключей на сервере.

    либо реализуйте все на сервере а на клиенте тупо интерфейс
    Ответ написан
    Комментировать
  • Как реализовать платный функционал в софте не зашивая его в код?

    @rPman
    Если у вас онлайн, то вам повезло, сделайте работу платного функционала зависимой от вашего сервера (например часть задач выполняйте там), чтобы без сервера ничего не работало бы. В идеале обфусицировать взаимодействие (сделать так чтобы в пределах одной задачи код работал последовательно то на клиенте то на сервере потом снова на клиенте, только следите чтобы не в ущерб скорости), чтобы отреверсить работу сервера было сложнее чем написать ваш платный функционал заново.

    В самом простом случае, можете реализовать ВЕСЬ платный функционал на сервере, а на клиенте только интерфейс (вернуться во времена http rest архиетктуры, ну с оглядкой на эффективность и отзывчивость).
    Ответ написан
    2 комментария
  • Генерация аудио файла с помощью сообщений?

    @rPman
    Из бесплатных (и наверное полулегальных) можно воспользоваться обычным android + google apps, там возможна установка гугловского синтезатора речи, для кучи языков, и по каждому можно подгрузить языковые данные для работы offline. Попробуйте все это в эмуляторе.

    Полулегальность - я подразумеваю что в лицензиях наверняка есть какие-нибудь запреты по построению систем синтеза и распознавания речи, иначе бы у гугла не было платного сервиса для того же самого но только онлайн.
    Ответ написан
    Комментировать
  • Как послать WM_LBUTTONDOWN без подключенного монитора?

    @rPman
    Если вы подключаетесь к серверу по rdp то после отключения сессия блокируется и GUI не работает

    Вам необходимо либо держать сессию rdp открытой либо подключиться к консоли например vnc/teamviewer (в датацентре провайдеры вам это не дадут)

    p.s. я решал проблему запуском десктопной windows в виртуалке, заодно оно работало на linux но с заметным понижением скорости
    Ответ написан
    2 комментария
  • Как реализовать рассылку на Вайбер, Вотсап, Телеграм?

    @rPman
    Легально проверить наличие - последовательно добавлять телефоны в контакт лист своего телефона и смотреть на реакцию чат-приложений.

    Легально организовать рассылку - нельзя. Судя по тому что я вижу в telegram там очень много ухищрений, чтобы это стало сложно.

    Пример бота рассылки сообщений - на базе web telegram, приложение эмитирует буквально добавление контакта, ввод посимвольно текста и прочее, само собой с фиктивных аккаунтов, ибо после спам деятельности они будут забанены почти моментально.
    Ответ написан
    2 комментария
  • Как принимать bitcoin платежи на сайте?

    @rPman
    итак, 2 главных правила:
    1. приватные ключи адресов, выдаваемых пользователям НЕ ДОЛЖНЫ храниться на веб-сервере, мало того, так как вы не выдаете монеты, храните их лично на своем (владельца сервиса) аппаратном кошельке
    2. bitcoind с ключом -prune 512 после прогрузки блокчейна будет занимать на диске примерно 6 гигабайт и через api будет полноценно работать с wallet.dat и адресами в нем в режиме просмотра и проверки прихода депозитов, запускать так же на сервере рядом с веб, на текущий момент этот демон может работать даже на малинке (файловую систему лучше использовать по сети на быстром файловом сервере, ибо у малинки только ОЧЕНЬ медленный usb), правда первичную загрузку лучше проводить на быстрой машине.

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

    Существуют иные библиотеки, занимающие меньше ресурсов (подключаются напрямую к сети и не проводят никаких проверок кроме наличия подтверждения от майнеров, этого более чем достаточно), но формально они 'не официальные' (хотя это философский вопрос что есть официальное в децентрализованной криптовалюте, но если что то реализует, ломающее совместимость, то в первую очередь в bitcoind).

    Это самый правильный и простой способ организации приема платежей.

    p.s. ждите релиза lightning network, скоро это станет стандартом де факто для приема платежей

    p.p.s. Если у вас есть задача переводов от вас, то реализуйте ее на отдельном сервере, коммуникация между веб-сервером и этим платежным сервером должна проводиться через специальный модуль безопасности (и разработанный для этого api), перепроверяющий все что только можно, в идеале разработанный разработчиками, отличными от тех кто делал веб-сервер.
    Ответ написан
    3 комментария
  • Как определить размер папки на google drive, не скачивая на комп?

    @rPman
    Утилита, первый запуск выдаст ссылку подключения доступа к аккаунту
    gdrive-windows-x64.exe list -m 1000

    дальше выдаст список файлов и каталогов (1000 лимит вывода, увеличивайте если нехватает), сохраняете в текстовый файл и открываете экселем (таблица с колонками фиксированной позиции, с пробелами) или чем вам там удобнее, размер в human readble варианте, ну выкрутитесь как-нибудь (формулой в экселе например).
    ----------------
    Альтернатива:
    Плагин к total commander, загружаете, добавляете, подключаетесь, делаете поиск *, жмете 'на панель', выделяете все, смотрите внизу размер.

    Если плагин встретит каталог с символом / в имени, будет глючить и выдавать бесконечную рекурсию
    Ответ написан
    Комментировать