Как собрать диалоги ВК?
Есть функция для сбора id всех диалогов. То есть, в файл "users.txt" идёт запись id каждого пользователя, который написал сообщение в группу. Я хочу собрать все такие id, но когда программа записывает 5200 айдишник, выходит ошибка (см. ниже)
def getmessages():
start = 0
with open("bin/users.txt","w+",encoding="UTF-8") as users:
for i in range(365):
dialogs = auth.method("messages.getConversations",{"offset": start, "count": 200, "filter":'all'})
for datadialogs in dialogs['items']:
iddialog = datadialogs['conversation']['peer']['local_id']
users.write(f"\n{iddialog}")
start += 200
print(f"start: {start}")
print("завершено")
Ошибка:
Traceback (most recent call last):
File "c:\Users\bin\code.py", line 97, in <module>
getmessages()
File "c:\Users\bin\code.py", line 29, in getmessages
dialogs = auth.method("messages.getConversations",{"offset": start, "count": 200, "filter":'all'})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\burak\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\vk_api.py", line 697, in method
raise error
vk_api.exceptions.ApiError: [917] You don't have access to this chat
Не совсем понятно, почему дальше программа "не может получить доступ к чату". Созревает логичный ответ — потому что в группе и нет больше 5200 диалогов. Но это не так. Сам ВК показвыает, что в сообществе 17 тысяч неотвеченных сообщений. А нам показало лишь 5200 айдишников.
Использую этот метод - https://dev.vk.com/method/messages.getConversations
Ответы (1 шт):
Проблема решена устаревшим методом messages.getDialogs (https://dev.vk.com/method/messages.getDialogs).
def getmessages2():
write_message(sender,"Получен запрос на сбор данных")
start = 0
with open("bin/users.txt","w+",encoding="UTF-8") as users:
for i in range(374):
dialogs = auth.method("messages.getDialogs",{"offset": start, "count": 200})
for datadialogs in dialogs['items']:
iddialog = datadialogs["message"]["user_id"]
users.write(f"\n{iddialog}")
start += 200
print("Сбор данных завершён")
