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

Пакет 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