Все новости с меткой: vk


Для начала нужно установить программку на свой телефон - Packet Capture. Программа  является прокси-сервером, в котором для мониторинг SSL-траффика используется аттака "Man in the Middle". В программу добавляется подставной сертификат, который для клиента считается доверенным. А сам прокси-сервер устанавливает две независимсые SSL-сессии, анализируя дешифрованные данные. А рут не нужен потому, что приложуха использует VPNService, доступный с Android 4.0. С помощью такого прокси можно анализировать работу различных REST API, которые ходят по https протоколу. Например, мне понадобилось починить музыкальное API ВКонтакте для VkAudioSaver.

Packet Capture VK API

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


openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.crt

sudo openssl pkcs12 -export -out cert.pfx -inkey cert.key -in cert.crt -certfile cert.crt -name "cert" -caname "cert"

Далее вводим пароль нового сертификата, получившийся файл cert.pfx. Его синхронизируем с устройством и затем в настройках программы добавляем сгенерированный самоподписанный сертификат. В диалговом окне импорта в поле алиас пишем "cert" и пароль. Затем добавляем сертификат в "Trusted credentials". Запускаем сниффинг запросов.

Доне.

Подробнее




Понадобилось, значит, мне выцепить User-Agent официальной приложухи ВКонтакте для Андроид. Выяснить-то удалось, формируется он как-то так:

USER_AGENT = String.format(Locale.US, "VKAndroidApp/%s-%d (Android %s; SDK %d; %s; %s %s; %s)", new Object[] { PackageInfo.versionName, PackageInfo.versionCode, Build.VERSION.RELEASE, Integer.valueOf(Build.VERSION.SDK_INT), Build.CPU_ABI, Build.MANUFACTURER, Build.MODEL, System.getProperty("user.language") });

Т.е. примерно такая строка - "VKAndroidApp/4.38-849 (Android 6.0; SDK 23; x86; Google Nexus 5X; ru)

Но, почитав код ниже, я неслабо так поугарал. Очень веселый код находится в файле com.vkontakte.android.api.ApiController.java. Подробности под катом.


Где смеяться:

  1. Я, конечно не имею по рукой гит блейма, но глядя на строку #5 не сложно догадаться об авторе писанного кода: https://vk.com/id25719408
  2. Строка #6, for (boolean bool = true;; bool = false) - это что блеать??
  3. Зачем вообще нужен цикл в строке #6, если скоуп все равно заканчивается return'ом в строке #35??
  4. Какую смысловую нагрузку несут конструкции str1 = str2 в строках ##15, 19, 21, 23
  5. Если вдруг словили эксепшн в строке #28 - то переходим в бесконечный цикл!!!
  6. Зачем нужна переменная j в строке #22 - хрен знает
  7. Отличное имя для константы FUCKING_AD_USER_AGENT = String.format(Locale.US, "VKApp/%s (Linux; U; Android %s; %s Build/%s)", new Object[] { str1, Build.VERSION.RELEASE, Build.MODEL, Build.ID });
Подробнее




За последние пару месяцев очень многие заметили, что аудиозаписи в VkAudioSaver отображаются далеко не все. Если и раньше была подобная проблема в программе - то достаточно редко, когда у пользователя была включена фильтрация по битрейту, в результате чего песни с низким качеством не попадали в выдачу. Но теперь все стало гораздо хуже. VK API попросту не отдает более половины треков, мотивируя это тем, что они запрещены правообладателями.

Подобная проблема отмечается у всех приложений, которые используют официальное API ВКонтакте. Например в Kate Mobile для Android

 


Или же в хорошо проработанном плеере Meridian для Win10 с открытым исходным кодом

 

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




На что мне ответили вот так:


Впрочем, откуда ноги растут понятно. Ведь не просто так ВК занимается легализацией музыки и заключает соглашения лейблами (Universal Music Group, Warner Music Group, Sony Music Entertainment). А это все ведь стоит денег, но пока никак не приносит прибыль. Поэтому понятно, что скоро будет вводиться одна из моделей монетизации музыки ВКонтакте. Ведь на сегодняшний момент есть определенная аудитория пользователей, оформляющих месячную подписку на Apple Music и Яндекс.Музыку.

— Прослушать аудиозапись можно будет бесплатно, но появится ряд новых платных функций — например, добавить аудиозапись к себе. Если вы любите исполнителей, вы должны их поддерживать. А музыканты должны зарабатывать, чтобы радовать вас новыми песнями. Во «ВКонтакте» это можно будет сделать по цене чашки кофе, — заявил гендиректор Warner Music Group в России Александр Блинов.
Поэтому качайте все, пока еще можно хоть что-то скачать.

Подробнее




С сегодняшнего дня руководство мейл.ру перевело основной домен vk.com вместе со всеми его пользователями на новый дизайн. Счастье было недолгим, когда в течение 2.5 месяцев работал обходной способ вернуться на старый дизайн через кнопку на сайте. Но теперь уже, кажется, все. По идее поможет только создание нативного приложения для десктоп со старым дизайном, но кто этим станет заниматься - конечно же никто. Оригинал новости от самого руководства можете прочитать здесь

Кстати, о новом дизайне отозвался и сам основатель соцсети Павел Дуров, приведя ряд конструктивных аргументов о недоработках нового дизайна.

Всем счастья, здоровья и хорошего настроения, держитесь там.

Подробнее




UPD от 17 августа Способ перестал работать, разработчики ВКонтакте наконец-то спустя 2.5 месяца прикрыли лазейку. Теперь больше нет поддомена new.vk.com, руководство мейл.ру запустило новый дизайн на основном домене vk.com. Очень жаль. Основная новость здесь

Оригинал статьи:

Сначала убрали рейтинг, потом убрали стену, потом убрали самого Дурова, а теперь и навязали уе*ищный новый дизайн вконтакте, в котором все просто нечитаемо. Если же раньше можно было опционально вернуть старый дизайн, то пару дней назад 10% пользователям навязали редирект на новый дизайн без возможности вернуться в старый. В итоге выглядит все примерно так:

— Cтарого дизайна нет, но вы держитесь там.

 Т.е. технически говоря, когда мы посылаем GET запрос на https://vk.com/feed, то нас через Location перебрасывает сразу же на https://new.vk.com/feed Но есть хитрожопая особенность, уеб-разработчики почему-то не делают редирект, если послать POST запрос на тот же адрес, поэтому для тех, кто больше не может держаться ВКонтакте с новым дизайном, я сделал волшебную кнопку
 

 

Не благодарите.

UPD: Кстати, пользуясь случаем, если кнопка Вам помогла, попробуйте заодно и мою бесплатную программу VkAudioSaver для скачивания музыки из ВК, она без каких-то подвохов и рекламы позволяет целиком скачать все песни сразу в один клик, подробное описание вот здесь

UPD2: Еще для пущего удобства я сделал страницу, которая автоматически шлет этот POST запрос, поэтому вам не обязательно сюда заходить что-то нажимать, а можете просто добавить вот эту страничку - http://bingosoft.info/vk/ в закладки (CTRL + D) и вывести ее на главную панель браузера. Расскажите всем, кто очень страдает от нового дизайна ВК

Вариант стартовой страницы для закладок
Подробнее




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

Откуда берем:

Ну можно например из мини-диалогов в самом вконтактике. Берем в firefox нажимаем правой кнопкой миши на смайлик и с помощью инструментов для разработчика выбираем пункт "Исследовать элемент".

Далее копируем длинную портяну кода вида

<a class="emoji_smile_cont" onclick="return cancelEvent(event);" onmousedown="Emoji.addEmoji(Emoji.shownId, 'D83DDD30', this); return cancelEvent(event);" onmouseover="return Emoji.emojiOver(2, this);">

 

Таких строчек у нас примерно будет 528 штук. Сохраним их в файл emoji.txt. Задача заключается в том, как быстро вытянуть utf-16 коды символов, используемых для смайлов по адресу http://vk.com/images/emoji/<код смайла>.png


На помощь придет трехстрочный скрипт на коленке:

while read line ; do
	expr "$line" : ".*\(shownId, '[0-9A-F]\+\)" | cut -f2 -d"'";
done < emoji.txt

Ну и все, можно даже вывести все это добро в html файлик, предварительно завернув код смайла в <img src="http://vk.com/images/emoji/$smile.png" /> и убедиться, что все коды валидны

Доне.

Подробнее