Как отправить фото с ПК в беседу VK_API
Всем привет! Мне надо, чтобы бот отправлял фотку C ПК в беседу ВКонтакте. Вот моя часть кода:
import vk_api
from bs4 import BeautifulSoup
import time
import requests
vk_session = vk_api.VkApi(token=TOKEN1) # Вход по токену.
vk = vk_session.get_api()
slovo = 'изменения' or 'изменение' or 'расписание'
url = 'https://vk.com/' + doc
if slovo in text:
if ts > old_ts:
print('-----------------')
print('отправил сообщение')
print('-----------------\n')
arg = 'wall-'+new_owner+'_'+ts_id # получаем данный на последний пост
webbrowser.open_new_tab(url)
time.sleep(1)
screen = pyautogui.screenshot('screenshot.png')
pyautogui.screenshot('screenshot.png', region=(814, 300, 100, 200))
template = pyautogui.locateOnScreen('screenshot.png')
#vk.messages.send(chat_id='2',random_id = '',attachment = arg,message = '.') # отправляем от лица группы в ЛС
time.sleep(8)
os.remove('C:\\Users\\weil\\Desktop\\vk\\screenshot.png')
print('successful')
Ответы (1 шт):
Автор решения: chinger12
→ Ссылка
Рекомендую воспользоваться библиотекой VkUpload В начале файла пишем
from vk_api import VkUpload
После строки vk = vk_session.get_api() пишем vk_upload = VkUpload(vk)
Так мы создали новую переменную для загрузки изображений.
В нужном нам месте кода(которое вы должны сами определить, если вы понимаете, что пишете), нужно написать:
with open('**название файла**', 'wb') as img_file:
upload_image = upload.photo_messages(photos=img_file, peer_id=**номер чата+2000000000**)[0]
pic = 'photo{}_{}'.format(upload_image['owner_id'], upload_image['id'])
В строке
#vk.messages.send(chat_id='2',random_id = '',attachment = arg,message = '.') # отправляем от лица группы в ЛС
attachment = arg меняем на attachment = pic