Всім привіт! Сьогодні я розповім вам трохи про пайтоновського API для соц. мережі ВКонтакте.
Пост призначений в першу чергу для школярів початківців розробників, які хочуть зробити найпростіше додаток.
Оскільки я сама не особливо сильна в Пайтон, про різні аспекти цього прекрасного мови (ООП, функціональне програмування і т.д.) я промовчу.
Пайтоновського віртуальну машину під вінду разом з небагатої середовищем розробки IDLE можна скачати тут.
Не раджу качати версію 3.5, бо під нею деякі модулі (ще не оновили) можуть не працювати.
І якщо ви тільки починаєте знайомитися з цією мовою, не раджу також качати версії нижче третьої.
Якщо ви юзаєте UNIX то повинні самі знати де гуглити. Під Убунту просто оновіться (типу sudo apt-get update).
Також рекомендую поставити pip під вашу версію мови.
У командному рядку або терміналі введіть pip install vk (pip3 install vk)
Або можете скористатися цим посиланням.
Також присутній документація з прикладами.
Що треба зробити ВКонтакте?
\ T \ tprint ( 'No new messages!')
\ T \ tSendEmail.sendEMail ( 'No new messages!')
Розберемо по рядках що робить цей код.
У перших трьох рядках ми імпортуємо необхідні нам модулі. Модуль time використовується для того, щоб відправляти процес в сон. Модуль SendEmail - це призначений для користувача модуль, призначений для відправки повідомлень на певний ящик.
Функція searchForUser (user_list, ID) шукає користувача по його ID в списку user_list об'єктів user. Коли вона його знаходить, то повертає рядок з ім'ям і прізвищем користувача. Перевірка на тип зроблена тому API ВКонтакте частенько повертає першим елементом списку об'єктів довжину цього списку.
Якщо повідомлення було відправлено з чату, то це додатково вказується.
1) Перевіряємо, чи є повідомлення і прочитано чи останні повідомлення
2) Якщо є, то витягуємо функцією checkMessages (message_list) рядок виду
Повідомлення від користувача 1
Повідомлення від користувача 2
Інший Юзер Зараз користувачів
Повідомлення від користувача 1
І відправляємо її собі на Email функцією SendEmail.sendEMail (text). Замість відправки на пошту можна виводити повідомлення в консоль або записувати в файл.
2а) Якщо повідомлень не було, то відправляємо повідомлення про це (його мета, в основному, дати вам зрозуміти що програма не вилетів з-за якого-небудь ексепшена).
3) Викликом time.sleep (600) чекаємо ще 10 хвилин.
Природно, ця простенька програма не є верхом досконалості. Зрідка виклик API може призводити до підняття ексепшена, що в даному випадку просто валить всю програму. Крім того, додаток ніяк не запам'ятовує що воно вже відправило вам повідомлення про якісь повідомленнях, тобто якщо ви не прочитаєте нові повідомлення, воно вас знову повідомить. І знову. І так до тих пір, поки в черговому виклик не вилетить ексепшен.
Якщо ви плануєте писати свій додаток, звертайте також увагу на обмеження щодо частоти запитів до API (в кінці сторінки).
Дякую всім за увагу, до нових зустрічей!