Перейти к публикации
Russel

Запланированная отправка сообщений в VK

Рекомендованные сообщения

Предисловие

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

Благо до меня дошло,что я ж программист и решил написать скрипт для реализации моей задачи,которым решил поделиться со всеми. Код написан конечно же на Python.

 

Установка Python

Переходим на официальный сайт PythonА - ТЫК. Скачиваем 3+ версию и устанавливаем ее. 

073fed9781541024e6c37.png
 
18cab0b483dced5dba34e.png
 
f42696dfbcf57aaa0f5f6.png
 

Суть работы скрипта

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

Начинаем кодить 

С помощью питоновского установщика пакетов установим библиотеку vk_api,для этого запустим терминал(cmd) и введем туда такую команду

Код:

pip install vk_api

_____________________________________________________________________________________________________________________________________

В самом начале программы, мы должны подключить библиотеки, которые мы будем использовать в нашем скрипте.

Код:

import vk_api,datetime #подключаем библиотеку vk_api(для работы с vk) и datatime(для получения реального времени)

_____________________________________________________________________________________________________________________________________

Создадим функцию для отправки сообщения пользователю с определенным id.

Код:

def send_mes():  #создаем функцию, которая называется send_mes
    try:  #попробовать сделать следующие действия, если не получится, то выполнить действия после except
        vk_session = vk_api.VkApi('+7xxxxxxxxx', 'пароль') #создаем переменную vk_session, которая равняется логину и паролю от нашего аккаунта вк
        vk_session.auth() #по значениям переменной vk_session подлючаемся к аккаунту.
        vk = vk_session.get_api() #создаем переменную vk,которая равняется получению api для работы с вк.
        vk.messages.send(user_id=id_пользователя,message='Скинни,займи деняк! https://a.kal.ru/a426.ng') #с помощью функции messages.send отправляем пользователю с id указанным после user_id,сообщение записанное в переменной message.
        sys.exit() #закрывает/выходит из скрипта
    except: #если действие после try не заработало/выдало ошибку, то выполнить действие после except
        pass #просто продолжаем выполнение кода.

_____________________________________________________________________________________________________________________________________

Теперь создаем функцию для отправки для получения текущего времени.

Код:

def realtim():  #создаем функцию, которая называется realtim
    global realtime #говорим что переменная realtime будет доступна не только в данной функции.
    now = datetime.datetime.now() #переменная now равняется получения реального времени с помощью функции библиотеки  datatime
    realtime=str(now.hour)+":"+str(now.minute) #переведем полученное время в удобный для нас вид и запишем это в переменную realtime равняется

_____________________________________________________________________________________________________________________________________

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

Код:

while True: #Запускаем бесконечный цикл
    realtim() #запускаем функцию realtim
    if realtime == '10:11': #если переменная realtime равняется  нужному нам времени(10:11),то
        try: #попробовать сделать следующие действия, если не получится, то выполнить действия после except
            send_mes() #запускаем функцию send_mes
            break #завершаем цикл
        except: #если действие после try не заработало/выдало ошибку, то выполнить действие после except
            pass #просто продолжаем выполнение кода.
    else: #иначе
        pass #просто продолжаем выполнение кода.

_____________________________________________________________________________________________________________________________________

Вот мы и закончили написание нашего скрипта,в итоге пользователь получает такое сообщение

551272ae861d5eff6d189.png
 

P.s.

Если вы хотите отправить картинку,то советую использовать какой-либо фотохостинг и отправлять ссылку на загруженное фото,а вк сам загрузит превью в диалог.

Просто метод отправки изображения vk_api довольно сложный,и мне просто было лень в нем разбираться)

 

Готовый код:
import vk_api,datetime
def send_mes():
    try:
        vk_session = vk_api.VkApi('+7xxxxxxxxx', 'пароль')
        vk_session.auth()
        vk = vk_session.get_api()
        vk.messages.send(user_id=id_пользователя,message='Скинни,займи деняк! https://a.kal.ru/a426.ng')
        sys.exit()
    except:
        pass

def realtim():
    global realtime
    now = datetime.datetime.now()
    realtime=str(now.hour)+":"+str(now.minute)
while True:
    realtim()
    if realtime == '10:11':
        try:
            send_mes()
            break
        except:
            pass
    else:
        pass

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

молодец , достаточно информативно расписал скрипт по вк через питон , дорогого стоит 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


×
×
  • Создать...