rvkstat

R клиент для работы с API Вконтакте (загрузка данных из API Вконтакте в R).


Project maintained by selesnow Hosted on GitHub Pages — Theme by mattgraham

Menu:


rvkstat - R пакет для работы с API Вконтакте</a>

Поддержать проект

Вы можете поддержать проект любой произвольной суммой воспользовавшись кнопкой или перейдя по этой ссылке.

Ссылки

CRAN

Rdoc rpackages.io rank

Содержание ReadMe пакета rvkstat

Видео уроки

У пакета rvkstat есть свой официальный плейлист с урока на YouTube.

Краткое описание пакета rvkstat

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

Все функции входящие в пакет rvkstat имеюи префикс vk.

Все функции пакета разделены на блоки, определить к какому блоку относится функция можно из её названия, название блока к которому относится функция идёт сразу после префикса vk:

Как получить подробную справку по функциям пакета rvkstat

Все функции пакета имеют подробное описание на русском языке, получить детальную справку по любой функции пакета rvkstat можно с помощь команды help, если вы работаете в RStudio справку так же можно получить указав ? перед названием комапнды:

help("vkGetAdStatistics")

?vkGetAdStatistics

Что необходимо для начала работы с API Вктонтакте с помощью пакета rvkstat

Для работы с api вконтакте вам необходимо создать приложение, в большинстве случаев вам потребуется при создании приложения указать платформу Веб-сайт, но если вы планируете загрузить диалоги из сообщества а не из пользовательского аккаунта то необходио указать платформу Standalone-приложение.

Создание приложения Вкнтакте для работы с API

Для создания приложения перейдите по этой ссылке, и выберите в разделе платформа Веб-сайт, если вы планируете загрузить диалоги из сообщества выбирайте - Standalone-приложение.

Далее, если вы создали веб приложение перейдите в меню настроек приложения, и влючите Open API: настройки приложения - Open API - Включить

После чего появятся настройки Open API, введите в них следующие значения: Адрес сайта: http://selesnow.github.io
Адрес сайта: selesnow.github.io
Доверенный redirect URI: https://selesnow.github.io/rvkstat/getCode/get_code.html
Доверенный redirect URI: https://selesnow.github.io/rvkstat/getCode/get_token.html
Доверенный redirect URI: https://oauth.vk.com/blank.html
Настройка Open API

Для начала работы с функциями пакета и для того, что бы с помощью формы получения токена или функции авторизации в Вконтакте получить токен разработчика используйте ID и Защищённый ключ приложения, вы в любой момент сможете найти их в настройках вашего приложения.

ID и секрет приложения

Как работать с API сервисом Вконтакте на Украине

Обойти блокировку API Вконтакте на Украине можно с помощью пакета getProxy. Процесс обхода блокировки с помозью пакета getProxy:

  1. Устанавливаем пакет getProxy с помощью приведённого ниже кода:
    if(!"devtools" %in% installed.packages()[,1]){install.packages("devtools")}
    library(devtools)
    install_github("selesnow/getProxy")
    
  2. Подключаем пакет getProxy с помощью комманды library(getProxy).
  3. Далее с помощью функции getProy обходим блокировку через прокси сервер, пример кода ниже:
#Направляем интернет соединение через прокси сервер
getProxy(port = "3128", country = "RU", supportsHttps = TRUE, action = "start")

#Пишем код для работы с API Вконтакте с помощью функций пакета rvkstat

#Отключаемся от прокси сервера
getProxy(action = "stop")

Установка пакета

Пакет rvkstat может быть установлен непосредственно из репозитория Github с помощью приведённого ниже программного кода.

Установка на Windows

if(!"devtools" %in% installed.packages()[,1]){install.packages("devtools")}
devtools::install_github('selesnow/rvkstat')

Установка на Ubuntu, Linux, Mac

if(!"devtools" %in% installed.packages()[,1]){install.packages("devtools")}
devtools::install_github('selesnow/rvkstat', subdir = "en")

Авторизация вконтакте для работы с API.

Для прохождения процесса авторизации в пакете rvkstat есть три функции:

Форма для получения токена доступа пользователя по схеме Implict Flow

ID приложения в Вконтакте:


Форма для получения токена доступа гуппы по схеме Implict Flow

ID приложения в Вконтакте:


ID сообществ Вконтакте разделённых запятыми, без пробелов:
пример: 0001,0002,0003


Пример прохождения авторизации с помощью функции vkGetToken

Для получения ключа доступа пользователя по схеме Implicit Flow воспользуйтесь следующим кодом:

myToken <- vkGetToken(app_id = <ID Вашего Приложения>)

Измените на ID вашего приложения, ID приложения можно получить на странице настройки приложения, как показано в разделе "[Что необходимо для начала работы с API Вктонтакте с помощью пакета rvkstat](https://github.com/selesnow/rvkstat/blob/master/README.md#Требование)".

После запуска функции откроется окно браузера, в котором вам необходимо предоставить приложению все необходимые для работы разрешения.

После предоставления разрешения вы будете перенаправлены на страницу https://selesnow.github.io/rvkstat/getCode/get_token.html где вам будет сгенерирован токен доступа.

Скопируйте его значение и вставьте в R, в качестве ответа на запрос “Your vk token from URL parameter access_token: “.

Пример прохождения авторизации с помощью функции vkGetGroupToken

Для получения ключа доступа сообществ по схеме Implicit Flow воспользуйтесь следующим кодом: group_token <- vkGetGroupToken(app_id = <ID Вашего Приложения>, group_ids = <ID Сообщества>)

После чего откроется окно браузера, в котором вам необходимо подтвердить разрещение на доступ к данным

Далее скопируйте токен доступа из URL на который вы были перенаправлены и вставьте в R, в качестве ответа на запрос “Your vk token from URL parameter access_token: “.

Пример прохождения авторизации с помощью функции vkAuth

myToken <- vkAuth(app_id = <ID Вашего Приложения>, app_secret = <Защищённый Ключ Вашего Приложения>)

Вместо укажите ID вашего приложения, вместо <Защищённый Ключ="" Вашего="" Приложения=""> укажите защищёный ключ вашего приложения, оба аргумента можно посмотреть на странице настройки приложения как описано в разделе "[Что необходимо для начала работы с API Вктонтакте с помощью пакета rvkstat](https://github.com/selesnow/rvkstat/blob/master/README.md#Требование)".

После запуска функции откроется окно браузера, в котором вы должны подтвердить разрешение доступ к данным в вконтакте.

После предоставления разрешения вы будете перенаправлены на страницу https://selesnow.github.io/rvkstat/getCode/get_code.html где вам будет сгенерирован код для получения токена доступа.

Скопируйте его значение и вставьте в R, в качестве ответа на запрос “Enter code from URL: “. После чего в рабочем окружении R появится объект myToken, который будет содержать токен доступа, срок действия токена (в данном случае токен бессрочный) и id пользователя которому был предоставлен токен доступа к API.

Функции доступные в пакете rvkstat

Функции для загрузки данных из рекламного кабинета Вконтакте

Получить список возможных тематик рекламных объявлений и их подразделов.

##Авторизация в вк
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
##Получение списка возможных тематик рекламных объявлений
vk_ad_categories <- vkGetAdCategories(access_token = my_tok$access_token)
Аргументы

Получить список доступных рекламных кабинетов Вконтакте

##Авторизация в вк
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
##Запрос списка доступных рекламных кабинетов
my_vk_acc <- vkGetAdAccounts(my_tok$access_token)
Аргументы

Получить список клиентов из агентского аккаунта Вконтакте

##Авторизация в вк
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
##Запрос списка доступных рекламных кабинетов
my_vk_clients <- vkGetAdClients(account_id = 11111111, access_token = my_tok$access_token)
Аргументы

Получить список объявлений из рекламного кабинета вконтакте

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
#Получаем список объявлений
my_vk_ads <- vkGetAds(account_id = 11111111, 
                      access_token = my_tok$access_token)
Аргументы

Получить описания внешнего вида рекламных объявлений.

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
#Получаем список объявлений с описанием их внешнего вида
my_vk_ads <- vkGetAdsLayout(account_id = 11111111, 
                            access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить список рекламных кампаний из рекламного кабинета вконтакте

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
#Получаем список рекламных кампаний
my_vk_campaigns <- vkGetAdCampaigns(account_id = 11111111, 
                                    access_token = my_tok$access_token)
Аргументы

Получить статистику показателей эффективности по рекламным объявлениям, кампаниям, клиентам или всему кабинету.

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

##Получаем статистику по рекламным кампаниям по дням
vk_stat_by_campaign <- vkGetAdStatistics(account_id = 11111111,
                                         ids_type = "campaign",
                                         ids = camp$id ,
                                         period = "day",
                                         date_from = "2010-01-01", 
                                         date_to = "2017-09-10",
                                         access_token = my_tok$access_token)
										
Аргументы
Возвращаемые значения

Получить остаток средств из рекламного кабинета

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")
#Получаем остаток средств из рекламного кабинета
vk_budget <- vkGetAdBudget(account_id = 11111111, 
                           access_token = my_tok$access_token)
Аргументы

Получить статистику по охвату аудитории по рекламным кампаним или объявления в разрезе городов

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

##Получаем статистику по рекламным кампаниям по дням
vk_ad_city_stat_day <- vkGetAdCityStats(account_id = 11111111,
                                        ids_type = "campaign",
                                        ids = camp$id ,
                                        period = "day",
                                        date_from = "2010-01-01", 
                                        date_to = "2017-09-10",
                                        access_token = my_tok$access_token)
										
Аргументы
Возвращаемые значения

Получить статистику по охвату аудитории по рекламным кампаним или объявления в разрезе пола

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

##Получаем статистику по рекламным кампаниям по дням
vk_ad_gender_stat_day <- vkGetAdGenderStats(account_id = 11111111,
                                            ids_type = "campaign",
                                            ids = camp$id ,
                                            period = "day",
                                            date_from = "2010-01-01", 
                                            date_to = "2017-09-10",
                                            access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить статистику по охвату аудитории по рекламным кампаним или объявления в разрезе возраста

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

##Получаем статистику по рекламным кампаниям по дням
vk_ad_age_stat_day <- vkGetAdAgeStats(account_id = 1,
                                      ids_type = "campaign",
                                      ids = camp$id ,
                                      period = "day",
                                      date_from = "2010-01-01", 
                                      date_to = "2017-09-10",
                                      access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить статистику по охвату аудитории по рекламным кампаним или объявления в разрезе пола и возраста

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

##Получаем статистику по рекламным кампаниям по дням
vk_ad_gender_age_stat_day <- vkGetAdGenderAgeStats(account_id = 11111111,
                                                   ids_type = "campaign",
                                                   ids = camp$id ,
                                                   period = "day",
                                                   date_from = "2010-01-01", 
                                                   date_to = "2017-09-10",
                                                   access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить подробную статистику по охвату рекламных записей из объявлений и кампаний для продвижения записей сообщества

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 11111111,app_secret = "H2Pk8htyFD8024mZaPHm")

##Получаем список рекламных кампаний
camp <- vkGetAdCampaigns(account_id = 11111111, access_token = my_tok$access_token)

#Получаем данные по охвату в разрезе рекламных кампаний
post_reach <- vkGetAdPostsReach(account_id = 11111111,
                                ids_type = "campaign",
                                ids = camp$id,
                                access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Функции для загрузки данных из сообществ Вконтакте

Во всех примерах этого раздела подразумевается что вы сначала прошли процесс авторизации с помощью функции vkAuth, пример кода ниже:

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 1,app_secret = "H2Pk8htyFD8024mZaPHm")

Получить данные о количестве просмотров, посетителях, подписавшихся и отписавшихся посетителей по дням

communityData <- vkGetGroupStat(date_from = "2016-01-01", 
                                date_to = "2016-04-01", 
                                group_id = 1, 
                                access_token = my_tok$access_token)
Аргументы

Получить данные о возрастных группах посетителей по дням.

communityDataAge <- vkGetGroupStatAge(date_from = "2016-01-01", 
                                      date_to = "2016-04-01", 
                                      group_id = 1, 
                                      access_token = my_tok$access_token)
Аргументы

Получить данные о поле посетителей по дням.

communityDataGender <- vkGetGroupStatGender(date_from = "2016-01-01", 
                                            date_to = "2016-04-01", 
                                            group_id = 1, 
                                            access_token = my_tok$access_token)
Аргументы

Получить данные о половозрастной структуре ваших посетителей по дням.

communityDataGenderAge <- vkGetGroupStatGenderAge(date_from = "2016-01-01", 
                                                  date_to = "2016-04-01", 
                                                  group_id = 1, 
                                                  access_token = my_tok$access_token)
Аргументы

Получить данные о городах посетителей.

communityDataCity <- vkGetGroupStatCity(date_from = "2016-01-01", 
                                        date_to = "2016-04-01", 
                                        group_id = 1, 
                                        access_token = my_tok$access_token)
Аргументы

Получить данные о странах посетителей.

communityDataCountries <- vkGetGroupStatCountries(date_from = "2016-01-01", 
                                                  date_to = "2016-04-01", 
                                                  group_id = 1, 
                                                  access_token = my_tok$access_token)
Аргументы

Получить данные по охвату записей на стене сообщества

## Авторизация в вк
my_tok <- vkAuth(app_id = 1, app_secret = "H2Pk8htyFD8024mZaPHm")

## Получаем список сообщений сообщества
my_vk_wall  <- vkGetUserWall(user_id = -111111,
                             access_token = my_tok$access_token) 
							 
## Получаем подрубную статистику по последним 300 записям сообщества							 
post_reach <- vkGetGroupStatPostReach(owner_id = -2222222,
                                      post_ids = my_vk_wall$id,
                                      access_token = my_tok$access_token)
Аргументы

Функции для загрузки справочной информации из Вконтакте

Во всех примерах этого раздела подразумевается что вы сначала прошли процесс авторизации с помощью функции vkAuth, пример кода ниже:

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 1,app_secret = "H2Pk8htyFD8024mZaPHm")

Получить id и название стран

##Получаем список стран
vk_countries <- vkGetDbCountries(need_all = T,
                                 code = c("RU","UA","BY"),
                                 access_token = my_tok$access_token)
Аргументы

Получить справочник городов

##Получаем справочник городов Украины, т.к. id Украины = 2
vk_cities <- vkGetDbCities(country_id = 2,
                           access_token = my_tok$access_token)
Аргументы

Получить справочник регионов

##Получаем справочник городов Украины, т.к. id Украины = 2, по запросу "Оде"
vk_regions_search  <- vkGetDbRegions(country_id = 2,
                                     q = "Оде",
                                     access_token = my_tok$access_token)
Аргументы

Функции для загрузки инормации о пользователе Вконтакте

Во всех примерах этого раздела подразумевается что вы сначала прошли процесс авторизации с помощью функции vkAuth, пример кода ниже:

##Авторизация в вконтакте
my_tok <- vkAuth(app_id = 1,app_secret = "H2Pk8htyFD8024mZaPHm")

Получиить список друзей пользователя Вконтакте.

my_vk_friends <- vkGetUserfriends(user_id = 7437995,
                                  access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить список групп и сообществ в которых состоит пользователь Вконтакте

my_vk_community <- vkGetUserGroups(user_id = 7437995,
                                   access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Получить список диалогов текущего пользователя или сообщества

library(rvkstat)
#Получаем ключ доступа для сообщества
group_token <- vkGetGroupToken(app_id = 111111, group_ids = 222222)

#Получаем список диалогов
message <- vkGetUserDialogs(access_token = group_token)
Аргументы
Возвращаемые значения

Получить сообщения со стены пользователя с количеством комментариев, лайков и рипостов

my_vk_wall <- vkGetUserWall(user_id = 7437995,
                            access_token = my_tok$access_token)
Аргументы
Возвращаемые значения

Список статей с примерами работы с пакетом rvkstat


Автор пакета: Алексей Селезнёв, Head of Analytics Dept. at Netpeak

Контакты
email: selesnow@gmail.com
skype: selesnow
telegram: @AlexeySeleznev
Facebook Vkontakte Linkedin Blog GitHub Stepic