Skip to content

Скрипт использует API ВКонтакте для получения данных о лидах, которые заполнили форму в группе. Данные загружаются в датафрейм Pandas, где они могут быть анализированы и/или выгружены.

Notifications You must be signed in to change notification settings

Luckyenough64/VK-form-leads

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

VK-form-leads

Скрипт использует API ВКонтакте для получения данных о лидах, которые заполнили форму в группе. Данные загружаются в датафрейм Pandas, где они могут быть анализированы и/или выгружены.

Инструкции по использованию:

  • Получите идентификатор Standalone-приложения ВКонтакте тут и права доступа на группу .
  • Запустите скрипт и следуйте инструкциям на экране для получения access_token через авторизацию приложения.
  • Введите URL из адресной строки после подтверждения доступа, чтобы получить access_token.
  • Укажите идентификатор группы и формы, данные о которых вы хотите получить.
  • Данные загружаются в датафрейм Pandas, который можно использовать для анализа и обработки данных.

Что ещё можно сделать лучше:

Например, можно добавить функции для анализа данных и автоматической отправки сообщений пользователям, которые заполнили форму. Также можно использовать другие методы API ВКонтакте для получения более подробных данных о группе и пользователях.

Код:

import requests
import json
import pandas as pd
import webbrowser
import re

app_id = "12345678"  # идентификатор Standalone-приложения
scope = "groups"  # права доступа на группу

# формируем URL для получения access_token и открываем URL в браузере
url = f"https://oauth.vk.com/authorize?client_id={app_id}&redirect_uri=https://oauth.vk.com/blank.html&display=page&scope={scope}&response_type=token&v=5.131"
webbrowser.open(url)

# ждём авторизацию и подтверждение доступа и извлекаем access_token из URL-адреса
access_token_url = input("Введите URL из адресной строки после подтверждения доступа: ")
access_token = re.search(r"access_token=([^&]*)", access_token_url).group(1)

# проверяем, что access_token действительный, можно в целом удалить, но пусть будет на всякий случай
response = requests.get(f"https://api.vk.com/method/account.getProfileInfo?access_token={access_token}&v=5.131")

if response.status_code == 200:
    print("Access token получен!")
else:
    print("Не удалось получить access token")

# Данные по группе и форме, а также ссылка для запросов
group_id = 123456789
form_id = 1
url_stats = 'https://api.vk.com/method/leadForms.getLeads?group_id={}&form_id={}&access_token={}&v=5.131'.format(group_id, form_id, access_token)

response_stats = requests.get(url_stats)

if response_stats.status_code == 200:
    data = json.loads(response_stats.text)
    leads = data['response']['leads']

    # Создаем список словарей, где каждый словарь представляет отдельный лид с его ответами
    leads_data = []
    for lead in leads:
        lead_data = {'lead_id': lead['lead_id'], 'user_id': lead['user_id'], 'date': lead['date']}
        for answer in lead['answers']:
            lead_data[answer['key']] = answer['answer']['value']
        leads_data.append(lead_data)

    # Создаем датафрейм из списка словарей
    df = pd.DataFrame(leads_data)
else:
    print('Произошла ошибка при запросе к API VK')

df.head()

Примечание

Совместимо с последней версией API VK на момент апреля 2023 года, то есть 5.131.

Лицензия свободная, дом свободный живите кто хотите используйте как хотите
Егор Лукьянов, web/product analyst, 07.04.2023, пишите в TG или на мыло если хотите, не хотите не пишите)

About

Скрипт использует API ВКонтакте для получения данных о лидах, которые заполнили форму в группе. Данные загружаются в датафрейм Pandas, где они могут быть анализированы и/или выгружены.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages