Судя по всему, ошибка связана с параметром `pts` при использовании Long Poll. Ранее `pts` применялся для отслеживания обновлений, но в актуальных версиях VK API этот параметр либо больше не используется, либо его возврат изменён. В классическом `LongPoll` (который применяется для пользовательских токенов) и при работе с `vk_api` иногда возникают ошибки, связанные с устаревшими параметрами или несоответствием типа токена и используемого LongPoll.
Основные моменты, которые стоит проверить:
1. **Тип токена**:
- Если у вас **токен пользователя**, тогда использование `VkLongPoll(vk_session)` корректно.
- Если же у вас **токен сообщества (группы)**, то необходимо использовать `VkBotLongPoll` из `vk_
api.bot _longpoll`, а не `VkLongPoll`. Иначе можно столкнуться с подобными ошибками.
2. **Версия API**:
Убедитесь, что при инициализации `VkApi` вы используете актуальную версию API. Например:
```python
vk_session = vk_api.VkApi(token=TOKEN, api_version='5.131')
```
Более новые версии API могут не возвращать параметр `pts` или работать без него.
3. **Обновление vk_api**:
Проверьте, что у вас установлена последняя версия библиотеки `vk_api`:
```bash
pip install --upgrade vk_api
```
Более новые версии могут исправлять подобные ошибки.
4. **Проверка методов получения данных**:
Иногда ошибка `pts` может всплыть косвенно, если метод `users.get` или `account.getProfileInfo` возвращает неожиданные данные. Убедитесь, что:
```python
user_info = vk_session.method('users.get')
if user_info:
user_id = user_info[0]['id']
else:
# Обработать ситуацию, если user_info пуст
```
Кроме того, переименуйте переменную `id`, так как `id` - встроенная функция Python. Используйте что-то вроде `user_id`.
Пример корректного кода с проверками и использованием `VkLongPoll` для пользовательского токена:
```python
try:
TOKEN = result[0][14]
vk_session = vk_api.VkApi(token=TOKEN, api_version='5.131')
longpoll_page = VkLongPoll(vk_session) # Используем только если TOKEN - пользовательский
profile_info = vk_session.method('account.getProfileInfo')
name = profile_info['first_name']
fam = profile_info['last_name']
user_info = vk_session.method('users.get')
if not user_info:
raise Exception("Не удалось получить информацию о пользователе")
user_id = user_info[0]['id']
vk_session.method('messages.send', {
'peer_id': event.obj.peer_id,
'random_id': 0,
'message': f'*id{user_id}({name} {fam}) была включена для привязки бесед'
})
print("Authorization was successful")
q.execute(f"UPDATE Newsletter SET WORK_inv_dop = '1' WHERE User_ID = {US_id}")
connection.commit()
new_thread3 = Thread(target=get_chats_inv, args=(longpoll_page, US_id, user_id, vk_session,))
new_thread3.start()
except Exception as e:
vk_session.method('messages.send', {
'peer_id': event.obj.peer_id,
'random_id': 0,
'message': f"Произошла ошибка: \n {e}"
})
```
try:
TOKEN = result[0][14]
vk_session = vk_api.VkApi(token=TOKEN)
longpoll_page = VkLongPoll(vk_session)
name = vk_session.method('account.getProfileInfo')['first_name']
fam = vk_session.method('account.getProfileInfo')['last_name']
id = vk_session.method('users.get')[0]['id']
vk.messages.send(peer_id=event.obj.peer_id, random_id=0,
message=f'*id' + str(id) + '(' + str(
name) + ' ' + str(
fam) + ') была включена для привязки бесед')
print("Authorization was successful")
q.execute(f"UPDATE Newsletter SET WORK_inv_dop = '1' WHERE User_ID = {US_id}")
connection.commit()
new_thread3 = Thread(target=get_chats_inv,
args=(longpoll_page, US_id, id, vk_session,))
new_thread3.start()
except Exception as e:
vk.messages.send(peer_id=event.obj.peer_id, random_id=0,
message=f"Произошла ошибка: \n {e}")
В результате ошибка pts