Last active
April 21, 2021 09:08
-
-
Save llgruff/1de1a235172be4161905908bfd5de324 to your computer and use it in GitHub Desktop.
Используем API ВКонтакте и Google Chrome Console
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
Инструкция: Настройки для работы с API vk.com | |
1. Прочитать Знакомство с API ВКонтакте https://vk.com/dev/first_guide (можно пропустить:)) | |
2. Регистрация приложения: | |
2.1. Открыть «Мои приложения» https://vk.com/apps?act=manage | |
2.2. Нажать «Создать» | |
2.3. Нужно выбрать один из трех типов приложений (для старта Standalone-приложение) | |
2.4. Подтвердить создание через СМС | |
2.5. Открыть вкладку «Настройки» в меню слева, сохранить свой «ID приложения», он же API_ID, APP_ID, client_id | |
3. Авторизация пользователя способом Implicit flow: | |
3.1. Откройте новую вкладку в браузере, введите в адресную строку запрос, указав свой API_ID: | |
https://oauth.vk.com/authorize?client_id=API_ID&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=token&v=5.52 | |
3.2. Нажмите Enter. Нажмите «Разрешить». | |
3.3. Из полученного URL сохраните свой access_token и user_id | |
https://oauth.vk.com/blank.html#access_token=???&expires_in=???&user_id=??? | |
4. Теперь Вы можете сделать вызов метода от своего имени через адресную строку браузера | |
4.1. Получить список друзей, которые сейчас онлайн: | |
https://api.vk.com/method/friends.getOnline?user_id=???&online_mobile=0&v=5.84&access_token=??? | |
4.2. Получить список всех друзей, с полями city, online, last_seen: | |
https://api.vk.com/method/friends.get?user_id=???&fields=city%2C%20online%2C%20last_seen&name_case=nom&v=5.84&access_token=??? | |
4.3. Получить список подписчиков: | |
https://api.vk.com/method/users.getFollowers?user_id=???&offset=0&count=1000&fields=city%2C%20online%2C%20last_seen&name_case=nom&v=5.84&access_token=??? | |
Инструкция: Как очистить свой список друзей ВКонтакте от неактивных пользователей | |
1. Получить access_token и user_id | |
2. Открыть https://api.vk.com/method/ | |
3. Открыть консоль браузера, например используя клавиатуру: | |
3.1. Command - Option - J (Mac) | |
3.2. Ctrl - Shift - J (Windows/Linux) | |
4. Скопировать код данный ниже в консоль, указав свой access_token и user_id | |
5. Запустить скрипт, нажав Enter | |
6. Ждать завершения работы, изучить логи | |
7. Если будут неудаленные - повторить) | |
*/ | |
// Константы, укажите свои | |
var ACCESS_TOKEN = '', // строка | |
USER_ID = 0, // число | |
UNIX_TIMESTAMP = Math.round(new Date().getTime() / 1000), | |
UNIX_DEADLINE = 2629743; // месяц | |
// Создаём новый объект XMLHttpRequest | |
var xhr = new XMLHttpRequest(); | |
// Конфигурируем: GET-запрос на URL. Для теста добавляем &count=5&offset=1000 | |
xhr.open('GET', 'friends.get?user_id='+USER_ID+'&fields=last_seen&name_case=nom&v=5.84&access_token='+ACCESS_TOKEN, false); | |
// Отсылаем запрос | |
xhr.send(); | |
// Если код ответа сервера не 200, то это ошибка | |
if (xhr.status != 200) { | |
// Обработать ошибку, пример вывода: 404: Not Found | |
console.error( xhr.status+': '+xhr.statusText ); | |
} else { | |
// Получаем результат | |
var json = xhr.responseText, | |
obj = JSON.parse(json), | |
Users = obj.response.items, | |
UsersToDelete = [], | |
UsersToDeleteSuccess = [], | |
UsersToDeleteError = []; | |
console.log( Users ); | |
// Формируем объект для удаления | |
for (var i = 0; i < Users.length; i++) { | |
// Если последний визит был больше месяца назад | |
if ( UNIX_TIMESTAMP - UNIX_DEADLINE > Users[i].last_seen.time ) { | |
UsersToDelete.push(Users[i]); | |
} | |
} | |
console.log( UsersToDelete ); | |
// Удаляем | |
for (var i = 0; i < UsersToDelete.length; i++) { | |
setTimeout(function(i) { | |
var xhr = new XMLHttpRequest(); | |
xhr.open('GET', 'friends.delete?user_id='+UsersToDelete[i].id+'&v=5.84&access_token='+ACCESS_TOKEN, false); | |
xhr.send(); | |
if (xhr.status != 200) { | |
console.error( xhr.status + ': ' + xhr.statusText ); | |
} else { | |
var json = xhr.responseText, | |
obj = JSON.parse(json); | |
// Если удалось успешно удалить друга | |
if ( typeof( obj.response ) != "undefined" ) { | |
if ( obj.response.success == 1 ) { | |
UsersToDeleteSuccess.push(UsersToDelete[i]); | |
console.log( 'success' ); | |
} | |
} | |
if ( typeof( obj.error ) != "undefined" ) { | |
UsersToDeleteError.push(UsersToDelete[i]); | |
console.error( obj.error.error_msg ); | |
} | |
} | |
if ( UsersToDelete.length == i+1 ) { | |
console.log( UsersToDeleteSuccess ); | |
console.info( "Всего друзей:",Users.length ); | |
console.info( "Всего для удаления:",UsersToDelete.length ); | |
console.info( "Ошибка удаления:",UsersToDeleteError.length ); | |
console.info( "Всего удалено:",UsersToDeleteSuccess.length ); | |
} | |
}, i*500, i); | |
} | |
} | |
/** | |
Для сравнения времени: | |
Обычная дата (Human readable time) Секунды | |
1 минута 60 секунд | |
1 час 3600 секунд | |
1 день 86400 секунд | |
1 неделя 604800 секунд | |
1 месяц (30.44 дней) 2629743 секунд | |
1 год (365.24 дней) 31556926 секунд | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment