1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import vk_api from vk_api.utils import get_random_id from random import * from vk_api import VkUpload from vk_api.keyboard import VkKeyboard, VkKeyboardColor from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType keyboard=VkKeyboard(one_time=True) keyboard.add_button('Первая кнопка', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Вторая кнопка', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Третья кнопка', color=VkKeyboardColor.NEGATIVE) def write_message(sender, message): authorize.method('messages.send', {'peer_id':sender, 'chat_id': sender, 'message': message, "random_id": get_random_id()}) token = '' def sticker(sender): authorize.method('messages.send',{'peer_id': sender, 'chat_id': sender, 'sticker_id': 71, "random_id": get_random_id()}) def clava(sender): authorize.method('messages.send', {'peer_id': sender, 'chat_id': sender, 'message': 'держи', "random_id": get_random_id(), 'keyboard':keyboard.get_keyboard()}) def smile(sender, message): authorize.method('messages.send',{'peer_id': sender, 'chat_id': sender, 'message': message, "random_id": get_random_id()}) def picture(sender): authorize.method('messages.send', {'peer_id':sender, 'chat_id': sender, 'message': 'держи', "random_id": get_random_id(), 'attachment':','.join(attachments)}) authorize = vk_api.VkApi(token=token) longpoll = VkBotLongPoll(authorize, group_id=202585633) list_of_users=[] image="C:/Users/Виктор/PycharmProjects/vkbot/1594262844_preview_В ПАЛАТУ ЖИВО.jpg" upload=VkUpload(authorize) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get('text') != "": received_message = event.message.get('text') sender = event.chat_id attachments=[] upload_image = upload.photo_messages(photos=image)[0] attachments.append('photo{}_{}'.format(upload_image['owner_id'], upload_image['id'])) if received_message == "Привет" or received_message== "привет": write_message(sender, "привет") sticker(sender) if list_of_users.count(sender) ==0: list_of_users.append(sender) elif received_message == "Пикча" or received_message== "пикча": picture(sender) elif received_message == "Клава" or received_message== "клава": clava(sender) elif received_message == "рассылка" or received_message== "Рассылка" and sender == 454303468: for user in list_of_users: write_message(user, 'Рассылка! Если тебе дошло это сообщение, значит рассылка работает!') else: write_message(sender, 'я вас не понимаю...������') |
-
#2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У тебя прав не хватает, чтобы написать первому от имени группы.
Для этого человек сам должен написать первое сообщение в ЛС паблика.
-
#3
У тебя прав не хватает, чтобы написать первому от имени группы.
Для этого человек сам должен написать первое сообщение в ЛС паблика.
Написал первым, и разрешил сообщения, и всеравно нихуя, дал боту все права на переписку, дал ему админку, даже в очело дал, и нихуя
У тебя прав не хватает, чтобы написать первому от имени группы.
Для этого человек сам должен написать первое сообщение в ЛС паблика.
Кст, теперь ошибка internal server error
-
#4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Написал первым, и разрешил сообщения, и всеравно нихуя, дал боту все права на переписку, дал ему админку, даже в очело дал, и нихуя
Кст, теперь ошибка internal server error
1) ты когда получал токен группы, указал, что токен дает доступ к сообщениям? Еще раз пересоздай.
2) internal error говорит лишь о твоем Кривом коде, который сервер не в состоянии обработать
#Northn
Police Helper «Reborn» — уже пять лет!
-
#5
ошибка internal server error
Возможности бота включены?
-
#6
Возможности бота включены?
Вроде да, все включено
-
#7
Если в беседу то peer_id должен начинаться с 2000000 затем айди беседы(сколько точно нулей не помню)
-
#8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если в беседу то peer_id должен начинаться с 2000000 затем айди беседы(сколько точно нулей не помню)
Есть chat_id, где уже все готово
-
#9
Есть chat_id, где уже все готово
вроде как на этой версии апи чат_ид не работает от имени сообщества
-
#10
кароче ебать, вот такая дичь, походу я все делал правильно, ток вк ебланы, и у них чет полетело
UPD
Нет это я долбоеб, я брал айдишник конфы со своей страницы, у меня выходило 160, щас зашел в групу, через групу в кф и там взял ее ид, ее ид был 6ыл
6 , ну и все отправляет теперь
Я хочу отправить сообщение пользователю через VK API:
await vk.api.messages.send({message: 🆘 ${nickname(sender)}, [id${user.vk_id}|${administrator.post} #${administrator.id}] ответил на Ваш репорт №${report.id} (${report.answer}):n${context.$match[2]}
, peer_id: report.sender, chat_id: report.sender, random_id: utils.random(100000, 999999)});
Выдаётся следующая ошибка:
Can't send messages for users without permission
Это не проблема с библиотекой, а то, что пользователь запретил группе писать ему.
И зачем писать параметр chat_id при отправке пользователю?
Я хочу отправить сообщение пользователю через VK API:
await vk.api.messages.send({message:🆘 ${nickname(sender)}, [id${user.vk_id}|${administrator.post} #${administrator.id}] ответил на Ваш репорт №${report.id} (${report.answer}):n${context.$match[2]}
, peer_id: report.sender, chat_id: report.sender, random_id: utils.random(100000, 999999)});Выдаётся следующая ошибка:
Can't send messages for users without permission
Пользователь не разрешил писать сообщения группе
Но я хочу отправить это сообщение себе от имени группы. А сообщения от группы у меня разрешены.
await vk.api.messages.send({user_id: report.sender, message: 🆘 ${nickname(sender)}, [id${user.vk_id}|${administrator.post} #${administrator.id}] ответил на Ваш репорт №${report.id} (${report.answer}):n${context.$match[2]}
});
await vk.api.messages.send({user_id: report.sender, message:
🆘 ${nickname(sender)}, [id${user.vk_id}|${administrator.post} #${administrator.id}] ответил на Ваш репорт №${report.id} (${report.answer}):n${context.$match[2]}
});
Вам нужно указать параметр random_id, но при желании вы можете поставить 0
и все же, это не относится к библиотеке
C
Three times! Answer found!
So, in order to download the audio message on the VK server, we need to:We get a link to download the server. Call attention.
Parameter: type=audio_message https://api.vk.com/method/docs.getUploadServer?access_token=your_token&type=audio_message&v=5.38
In return, we will be here. JSON: {«response»:{«upload_url»:»https://pu.vk.com/c806630/upload.php?act=add_doc&mid=151665536&aid=0&gid=0&type=audio_message&hash=a171e6bf246f389425f23a62ba4165d4&rhash=6e0e444008a2186f484af9f02c2ac49f&api=1″}}
Let’s get URL out of it for loading:https://pu.vk.com/c806630/upload.php?act=add_doc&mid=151665536&aid=0&gid=0&type=audio_message&hash=a171e6bf246f389425f23a62ba4165d4&rhash=6e0e444008a2186f484af9f02c2ac49f&api=1
We’ll get the code from here: http://www.codejava.net/java-se/networking/upload-files-by-sending-multipart-request-programmatically I’ll tell you, we’re taking a code here that will help us download a VK server file in a format. multipart/form-datawhich VK requires. Possible file formats: mp3 (Performed client) 3gp (Kate uses)In class. MultipartFileUploader Add the field. «file.»as required by VK:Pass the file on the address upload_url received in the preceding paragraph,
By forming a POST request with a field file. This field should contain the file.
multipart/form-data.multipart.addFilePart(«file», uploadFile1);
We’re doing the request, PROFIT!Here we go. JSON in response:»file»:»123456|65421|0|415317|20ee43693a|jpg|81897|Document.jpg|6798bc4fe908cc476cb1c13ce844a985|105d984a920fe7ee9042681bb6d30fbd|m_20ee43693a||m:130×72,s:100×55,x:604×331,y:807×442,o:748×409″
Next, we keep our document on the VK server:https://api.vk.com/method/docs.save?file=ЗДЕСЬ_ПОЛУЧЕННЫЙ_ПАРАМЕТР_ФАЙЛ&access_token=your_token&v=5.60
And they get it. JSON in response:»response»: [{
«**id**»: 440531838,
«**owner_id**»: 151665536,
«title»: «comm»,
«size»: 467756,
«ext»: «ogg»,
«url»: «https://vk.com/do…90e2afaa7&api=1»,
«date»: 1483295228,
«type»: 5,
«preview»: {
«audio_msg»: {
«duration»: 292,
«waveform»: [0, 0, 0, 0, 0, 0, 1, 5, 1, 6, 0, 2, 5, 20, 10, 8, 7, 12, 24, 16, 5, 4, 8, 8, 4, 6, 2, 6, 5, 1, 9, 10, 4, 2, 7, 3, 16, 0, 6, 1, 11, 2, 7, 3, 3, 4, 3, 5, 2, 8, 2, 7, 13, 5, 8, 9, 5, 3, 2, 13, 20, 6, 7, 8, 13, 2, 13, 1, 5, 14, 1, 2, 16, 12, 10, 5, 21, 31, 15, 7, 16, 19, 19, 9, 13, 1, 4, 10, 10, 4, 2, 11, 5, 5, 2, 8, 2, 8, 1, 3, 0, 1, 5, 4, 2, 5, 3, 7, 5, 0, 3, 3, 2, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
«link_ogg»: «https://cs540102….udio/b70049db92.ogg»,
«link_mp3»: «https://cs540102….udio/b70049db92.mp3»
}
}
}]
By method https://vk.com/dev/messages.send We’re sending our downloaded file in shape. doc:https://api.vk.com/method/messages.send?user_id=111111&attachment=doc<owner_id>_<media_id>&access_token=your_token&v=5.60
Data owner and media_id from the previous paragraphAnd it’s safe to get an audio message. Thank you for your attention!P/s, by the way, Version 5.60 also works (checked), so it can be used in requests.Update:There’s a new question here — how do we respond to the audio-visual constellation in community reports? Answer me. ♪For the group: Firstly, the administrators have access to group documents
(Restricted)Then we’ into the building of the community and we’ll take the key of the community.Next, we make this request for loading:https://api.vk.com/method/docs.getWallUploadServer?group_id=<gorup_id>&access_token=<group_token>&v=5.60
We’re downloading the file as I’ve shown above and keeping it the same way.We send a message to a laser on behalf of the community like this:https://api.vk.com/method/messages.send?user_id=<user_id>&attachment=doc<owner_id>_<audio_id>&access_token=<group_token>&v=5.60
Profit! For the public page:It seemed so simple and simple. Public Pagebut it wasn’t here. Since there are no voicemails for the public, and you will be making a mistake in authorizing the use of a small lifhak. ♪We’ll put our audience in the group and we’ll have a new key to the groups with access to documents and audio.We’re moving the band back to the public.In the menu, Community Department — National Development — Main The sections put the boxes on the points: «Findings.» and «Audio recordings.» Use everything I’ve written for the band.A little fun:Comments/on the wall/in discussions (provided) may be sent AUDIT PROMOTION(sighs)Read it again, please.) It’s very simple. Regular
Request to send to comment/ wall/discussion. Attach our audio.
(laughs like audio-communication, which caused war)
Surprised in the public that I tested it.Another wonderful thing is the empty enthusiasm of audio messages. For shipment, instead of format doc in the description attachment ♪ audioAnd a new bug again. We can send an empty audio. Checked for Python: Nothing. ♪ ♪ ♪ Magic! It does the same. When sending a comment instead of a format doc in the description attachment ♪ audio♪ I noticed, however, that different comments make the bang different. Somewhere empty inside and somewhere empty. ♪ ♪P/s, by the way, checked, rolls in discussions. Left a reminder in group vk api: Update:Instead of an attach doc or an audio, you can insert almost anything. Some vicks. Maybe something useful. Really, photo I don’t get it. ♪ ♪ Update:Large files download NEXT! You got a mistake: 504 Gateway Time-out.Update:Technical support replied:
New answer:
Well, actually, finishing the show.: Update:Well, that’s what support says about AudioAPI, why not use it until it’s covered? There was recently a small text on its use. This easy access was unexpected. ♪ ♪
At the end, interesting websites still operating from the pond. http://telegra.ph/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC-VK-API-12-31
Перейти к содержанию
VK API Error Code – Коды ошибок Вконтакте
Код ошибки | Описание |
---|---|
1 | Произошла неизвестная ошибка. Попробуйте повторить запрос позднее. |
2 | Приложение выключено. Нужно включить приложение в настройках https://vk.com/editapp?id={Ваш API_ID} или воспользоваться тестовым режимом (test_mode=1) |
3 | Передан неизвестный метод. Нужно проверить указано ли название вызываемого метода: https://vk.com/dev/methods. |
4 | Неверная подпись. |
5 | Авторизация пользователя не удалась. Следует убедиться, что используется верная схема авторизации. |
6 | Слишком много запросов в секунду. Нужно задать больший интервал между запросами или использовать метод execute. Узнать подробнее об ограничениях на частоту вызовов можно тут: https://vk.com/dev/api_requests. |
7 | Нет прав для выполнения этого действия. Следует проверить, получены ли необходимые права доступа при авторизации. Сделать это можно с помощью метода account.getAppPermissions. |
8 | Неверный запрос. Нужно проверить синтаксис запроса и список параметров, которые используются. |
9 | Слишком много однотипных действий. Нужно уменьшить число однотипных обращений. Для оптимизации работы можно использовать execute или JSONP. |
10 | Произошла внутренняя ошибка сервера. Попробуйте повторить запрос позже. |
11 | В тестовом режиме приложение должно быть выключено или пользователь должен быть залогинен. Следует выключить приложение в настройках https://vk.com/editapp?id={Ваш API_ID} |
14 | Требуется ввод кода с картинки (Captcha). Процесс обработки этой ошибки подробно описан на странице. |
15 | Доступ запрещён. Следует убедиться, что используются верные идентификаторы, а также, что доступ к запрашиваемому контенту для текущего пользователя есть в полной версии сайта. |
16 | Требуется выполнение запросов по протоколу HTTPS, т.к. пользователь включил настройку, требующую работу через безопасное соединение. Во избежание возникновения этой ошибки, в Standalone-приложении можно предварительно проверять состояние этой настройки у пользователя методом account.getInfo. |
17 | Требуется валидация пользователя. Действие требует подтверждения — нужно перенаправить пользователя на служебную страницу для валидации. |
18 | Страница удалена или заблокирована. Страница пользователя была удалена или заблокирована |
20 | Данное действие запрещено для не Standalone приложений. Если ошибка появляется несмотря на то, что приложение имеет тип Standalone, следует убедиться, что при авторизации было использовано redirect_uri=https://oauth.vk.com/blank.html. Подробнее на странице: https://vk.com/dev/auth_mobile. |
21 | Данное действие разрешено только для Standalone и Open API приложений. |
23 | Метод был выключен. Ознакомиться со всеми актуальными методами ВК API, доступными в настоящий момент можно тут: https://vk.com/dev/methods. |
24 | Требуется подтверждение со стороны пользователя. |
27 | Ключ доступа сообщества недействителен. |
28 | Ключ доступа приложения недействителен. |
29 | Достигнут количественный лимит на вызов метода. Узнать подробнее об ограничениях на количество вызовов можно тут: https://vk.com/dev/data_limits |
30 | Профиль является приватным. Информация, которая запрашивается о профиле, недоступна с используемым ключом доступа |
33 | Еще не реализовано. |
100 | Один из необходимых параметров был не передан или неверен. Следует проверить список требуемых параметров и их формат на странице с описанием метода. |
101 | Неверный API ID приложения. Нужно найти приложение в списке администрируемых на странице, и указать в запросе правильный API_ID (идентификатор приложения). |
113 | Неверный идентификатор пользователя. Следует убедиться, что используется правильный идентификатор. Получить ID по короткому имени можно методом utils.resolveScreenName. |
150 | Неверный timestamp (метка времени). Актуальное значение можно получить методом utils.getServerTime. |
200 | Доступ к альбому запрещён. Нужно убедиться, что используются верные идентификаторы (для пользователей owner_id — положительный, для сообществ — отрицательный), и доступ к контенту, которые запрашивается, для текущего пользователя есть в полной версии сайта. |
201 | Доступ к аудио запрещён. Нужно убедиться, что используются верные идентификаторы (для пользователей owner_id — положительный, для сообществ — отрицательный), и доступ к контенту, которые запрашивается, для текущего пользователя есть в полной версии сайта. |
203 | Доступ к группе запрещён. Нужно убедиться, что текущий пользователь является участником или руководителем группы (для закрытых и частных групп и встреч). |
300 | Альбом переполнен. Перед продолжением работы нужно удалить лишние объекты из альбома или использовать другой альбом. |
500 | Действие запрещено. Вы должны включить переводы голосов в настройках приложения. Следует проверить настройки приложения: https://vk.com/editapp?id={Ваш API_ID}§ion=payments |
600 | Нет прав на выполнение данных операций с рекламным кабинетом. |
603 | Произошла ошибка при работе с рекламным кабинетом. |
3300 | Требуется рекапча. |
3301 | Требуется подтверждение телефона. |
3302 | Требуется подтверждение пароля. |
3303 | Требуется проверка приложения Otp. |
3304 | Требуется подтверждение по электронной почте. |
3305 | Требуется утвердить голоса. |