sonic_youth
@sonic_youth
бла-бла-бла

Как скачать чат вконтакте?

Подскажите, пожалуйста, как написать скрипт, чтобы скачать диалог из контакта?
Используя requests.
  • Вопрос задан
  • 4853 просмотра
Решения вопроса 1
@orgkhnargh
медленно пишу на django
Создаем standalone-приложение тут: vk.com/editapp?act=create
Затем в настройках приложения смотрим ID и защитный ключ и вставляем их в скрипт ниже.
# coding: utf-8
from __future__ import print_function
from __future__ import unicode_literals

import os
import sys

from oauthlib.oauth2.rfc6749.clients import WebApplicationClient
from requests_oauthlib import OAuth2Session

# VK не присылает scope после получения токена. Чтобы oauthlib не
# выбрасывала исключение, нужно поставить этот флажок:
os.environ.setdefault('OAUTHLIB_RELAX_TOKEN_SCOPE', '1')

if sys.version_info.major < 3:
    # PY2
    input = raw_input

# Эти данные Вы должны получить после создания приложения
client_id = 'сюда подставляем ID'
client_secret = 'а сюда секретный ключ'

authorization_base_url = 'https://oauth.vk.com/authorize'
token_url = 'https://oauth.vk.com/access_token'

api_client = WebApplicationClient(
    client_id=client_id,
    default_token_placement='query'
)
vk = OAuth2Session(scope='messages', client=api_client)

# получаем адрес для авторизации приложения
authorization_url, state = vk.authorization_url(authorization_base_url)
print('Пройдите по указанному адресу и авторизуйтесь:', authorization_url)

auth_resp = input('Введите адрес, на который вы были перенаправлены после '
                  'прохождения авторизации:')
auth_resp = auth_resp.replace('#', '?')  # иначе код сам не найдется

vk.fetch_token(token_url, client_secret=client_secret,
               authorization_response=auth_resp)

# так можно получит список диалогов
response = vk.get('https://api.vk.com/method/messages.getDialogs', 
                  params={'v': '5.28'}).json()
print(response.json())

Скрипт нужно дописать, чтобы забрать сообщения с конкретного диалога. Взгляните на метод messages.getHistory.
Список всех методов API Вконтакте для работы с сообщениями лежит тут: vk.com/dev/messages
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы