--- title: "1. API facebook Authorization" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{1. API facebook Authorization} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( eval=FALSE, collapse = TRUE, comment = "#>" ) ``` ```{r setup} library(rfacebookstat) ``` Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° работы Ñ Facebook Marketing API предварительно требуетÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ процеÑÑ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. Ð’ пакете `rfacebookstat` еÑть неÑколько вариантов авторизации: * ПроÑÑ‚ÐµÐ¹ÑˆÐ°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð¸Ñпользованием Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию; * ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ‡ÐµÑ€ÐµÐ· ÑобÑтвенное приложение. # ПроÑÑ‚ÐµÐ¹ÑˆÐ°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ðаиболее быÑтрый и проÑтой ÑпоÑоб пройти авторизацию и получить маркер Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ API Facebook - иÑпользовать приложение вшитое в пакет `rfacebookstat`. Ð”Ð»Ñ Ñтого вам доÑтаточно иÑпользовать функцию `fbAuth()`. ```{r} library(rfacebookstat) fbAuth() ``` ПоÑле запуÑка функции `fbAuth()` вы будете перенаправлены в браузер Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ñƒ rfacebookstat доÑтупа к вашим рекламным кабинетам. Далее вы будете перенаправлены на другую Ñтраницу, где Ð´Ð»Ñ Ð²Ð°Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñгенерирован краткоÑрочный маркер доÑтупа к API. Его необходимо Ñкопировать и вÑтавить в конÑоль RStudio в качеÑтве ответа на Ð·Ð°Ð¿Ñ€Ð¾Ñ "Enter your token:". Полученный ранее краткоÑрочный токен будет изменён на долгоÑрочный, о чём вы узнаете из ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ "Token changed to long time successfully" в конÑоли RStudio. У Ð²Ð°Ñ ÐµÑть возможно Ñохранить полученные данные в файл, Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, что бы в Ñледующий раз не было необходимоÑти проходить авторизации через браузер. Ð”Ð»Ñ Ñтого ответьте *y* или *yes* на Ð²Ð¾Ð¿Ñ€Ð¾Ñ "Do you want save your access token into rds file C:/my_develop_workshop/ppc_report_2/selesnow.rfb_auth.rds for use it between R sessions ?", который вы увидите в конÑоли RStudio. ЕÑли вы Ñделали вÑÑ‘ ÑоглаÑно инÑтрукции, то вы увидите Ñообщение "Token saved in C:/facebook/credentials/.rfb_auth.rds", которое говорит о том, что вы уÑпешно получили и Ñохранили учётные данные необходимые Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Facebook Narketing API. Также в конÑоль будет выведена Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ ваших учётных данных. ``` Facebook access token Access token: <hidden> App id: 176943372709235 App name: rfbstat User id: 1246563312029308 User name: ÐлекÑей Селезнёв Expires at: never ``` Из Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð²Ñ‹ можете узнать id и название Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¼Ñƒ вы предоÑтавили разрешение на доÑтуп к данным, id и Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ð´ которым вы прошли авторизацию, а также дату до которой будет дейÑтвителен полученный вами маркер доÑтупа, never означает что вы получили беÑÑрочный токен. Ð’ поле *Access token* должен отображатьÑÑ Ð²Ð°Ñˆ маркер, но по умолчанию он не выводитÑÑ Ð² конÑоль, еÑли вы работаете под Windows, то каждый раз когда вы будете выводить на печать объект полученный Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `fbAuth()` ваш маркер доÑтупа автоматичеÑки будет передан в буфер обмена. ЕÑли вам необходимо вывеÑти в конÑоль полученный маркер, то Ñто можно Ñделать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `print()` Ñ Ð¸Ñпользованием аргумента *show_token*. ```{r} print(fbAuth(), show_token = T) ``` ``` Facebook access token Access token: EAACg7dbg.................... App id: 176943372709235 App name: rfbstat User id: 1246563312029308 User name: ÐлекÑей Селезнёв Expires at: never ``` Теперь можно выполнить первый вызов к Facebook Marketing API. Ðапример вы можете запроÑить ÑпиÑок рекламным аккаунтам к которым у Ð²Ð°Ñ ÐµÑть доÑтуп Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `fbGetAdAccounts()`. ```{r} fbGetAdAccounts() ``` ``` Token load from C:/facebook/credentials/.rfb_auth.rds # A tibble: 420 x 10 id name account_id account_status amount_spent balance business_name currency owner <chr> <chr> <chr> <int> <chr> <chr> <chr> <chr> <chr> 1 act_~ 4772~ 47725506 1 9177567 2272 DEMOBAZA Ltd. EUR 7445~ 2 act_~ capp~ 14794670 1 2787098 0 "" AED 2642~ 3 act_~ Rual~ 67398193 1 3681338 4825 Rual Travel ~ USD 2357~ 4 act_~ Plas~ 66869331 1 6355231 3069 Plasico Comp~ USD 8519~ 5 act_~ Maxi~ 77890760 1 2101480 426 Maxi.az USD 1910~ 6 act_~ heal~ 171226248 1 3653879 0 Ðетпик ЕООД USD 3689~ 7 act_~ Tric~ 363293104 1 81285 0 "" USD 5031~ 8 act_~ Spor~ 361373151 1 1424069 2053 Соларшоп ЕООД EUR 2201~ 9 act_~ Netp~ 262115113 1 7393426 2615 Netpeak USD 9055~ 10 act_~ Nata~ 362381897 1 6207085 6290 "" USD 1950~ # ... with 410 more rows, and 1 more variable: user_role <chr> ``` Ðто дейÑтвительно Ñамый проÑтой ÑпоÑоб авторизации, но у API Facebook очень быÑтро менÑÑŽÑ‚ÑÑ Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº приложениÑм в ÑвÑзи Ñ Ñ‡ÐµÐ¼, приложение которое вшито в `rfacebookstat` может быть недоÑтупно Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ пользователÑм, еÑли вы ÑтолкнулиÑÑŒ Ñ Ñ‚Ð°ÐºÐ¾Ð¹ ошибкой то вы можете Ñоздать ÑобÑтвенное приложение и пройти авторизацию через него. # ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð¸Ñпользованием ÑобÑтвенного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ `fbAuth()` по умолчанию иÑпользует вÑтроенное приложение, но при необходимоÑти вы можете Ñоздать ÑобÑтвенное приложение и пройти процеÑÑ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ через него. ## Создание и наÑтройка ÑобÑтвенного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ в Facebook API Подробно о приложениÑÑ…, их региÑтрации и наÑтройке можно узнать в официальной [Ñправке](https://developers.facebook.com/docs/development). Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñвоего Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¾ выполнить Ñледующие дейÑтвиÑ: 1. Перейти на [Ñтраниц приложений](https://developers.facebook.com/apps/). 2. Ðажать кнопку "Добавьте новое приложение". 3. Ð’ поÑвившемÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð¾Ð²Ð¾Ð¼ окне ввеÑти название Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ ваш email, и нажать "Создать ID приложениÑ". 4. Далее в панели приложение добавьте продукт "Вход через Facebook", нажав на нём кнопку "ÐаÑтроить" 5. Выберите из предложенных платформ "Веб". 6. Ð’ блоке "Укажите URL вашего Ñайта" введите https://selesnow.github.io, и нажмите "Save", а затем "Продолжить" > "Далее" > "Далее" > "Далее". 7. Ð’ меню вашего Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² облаÑти "Продукты" вы увидите "Вход через Faceook", перейдите в раздел наÑтройки.  8. Ð’ наÑтройках найдите "ДейÑтвительные URI Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ OAuth" и введите Ñледующий URL: https://selesnow.github.io/rfacebookstat/getToken/get_token.html 9. Ð’ нижней чаÑти Ñкрана наÑтройки "Вход через Facebook" нажмите "Сохранить изменениÑ". 10. Ð’ оÑновном меню Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¹Ð´Ð¸Ñ‚Ðµ в раздел "Панель". 11. Ð’ окне "Панель" ÑпуÑтитеÑÑŒ в облаÑть "Добавьте продукты" и нажмите в продукте "API Marketing" кнопку "наÑтроить". 12. Теперь можете вернутьÑÑ Ð² оÑновном меню Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² раздел ÐаÑтройки > ОÑновное. 13. Ð’ разделе ÐаÑтройки > ОÑновное вы найдёте Идентификатор Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ Ñекрет приложениÑ, далее вы будете иÑпользовать Ñти параметры Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ через ÑобÑтвенное приложение. **Важно! Ðе выводите Ñвоё приложение из ÑтатуÑа "в разработке", Ñ‚.к. Ð´Ð»Ñ Ñтого требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñо Ñтороны поддержки API Facebook, процеÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ длительный и Ñложный. Ðо вы можете работать Ñо Ñвоими рекламными кампаниÑми даже еÑли ваше приложение имеет ÑÑ‚Ð°Ñ‚ÑƒÑ "в разработке"** ## Ðргументы функции `fbAuth()` * app_id - Идентификатор Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * app_secret - Секрет Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * username - Ваш логин на Facebook * token_path - Путь к папке в которой вы хотите Ñоздать файл Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ñ… данных * reauth - ПереавторизоватьÑÑ Ð¿Ð¾Ð´ указанным в username пользователем, еÑли вы уже ранее запрашивали Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ учётные данные * skip_option - Игнорировать опции и переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ авторизации (будет раÑÑмотрено ниже) СоответÑтвенно авторизоватьÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑобÑтвенного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ передав в аргументы *app_id* и *app_secret* идентификатор и Ñекрет Ñозданного вами приложениÑ. ```{r} fbAuth(app_id = 556970798471513, app_secret = "10fbc64e0c426feb4e774395c97237fa", username = "seleznev_a", skip_option = TRUE, reauth = FALSE, token_path = "D:/fb_auth_store") ``` ``` Facebook access token Access token: <hidden> App id: 556970798471513 App name: MyAPP User id: 2834875706531386 User name: ÐлекÑей Селезнёв Expires at: 2019-12-31 09:32:15 ``` При авторизации через ÑобÑтвенное приложение Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¼ уровнем доÑтупа к API Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ токена будет ограничен. Ð’ Ñообщение приведённом выше видно, что полученный токен дейÑтвителен до 31 Ð´ÐµÐºÐ°Ð±Ñ€Ñ 2019 года 09:32:15. Ðа Ñамом деле пакет `rfacebookstat` Ñам автоматичеÑки будет продлевать ваш токен по мере необходимоÑти в Ñлучае еÑли до завершена Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð¾ÑтаётÑÑ Ð¼ÐµÐ½ÐµÐµ 10 дней. # ÐвтоматичеÑÐºÐ°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐŸÐ¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ‹Ðµ вами учётные данные будут иÑпользоватьÑÑ Ð² каждом запроÑе к API Facebook. ПоÑтому поÑле того, как вы один раз получили учётные данные, и Ñохранили их в файл, наиболее удобным вариантом их иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвлÑÑŽÑ‚ÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ðµ Ñреды или опции. ## Переменные Ñреды Ðто наиболее удобный ÑпоÑоб работы Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ данными в `rfacebookstat`, к тому же его преимущеÑтво заключаетÑÑ Ð² том, что не будет необходимоÑти хранить ваш токен в виде текÑтовой Ñтроки в Ñкрипте. Создать переменные Ñреды можно неÑколькими ÑпоÑобами: 1. ПропиÑать их в файл *.Renviron*; 2. ÐаÑтроить переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ (Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Windows): 3. Задать в начале Ñкрипта Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды `Sys.setenv()`. ### ÐаÑтройка переменных Ñреды через файл .Renviron Файл *.Renviron* в домашнем каталоге R, и позволÑет вам задавать переменные Ñреды. Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° необходимо найти домашний каталог: ```r path.expand("~") ``` ``` [1] "C:/Users/username/Documents" ``` Обычно Ñто папка Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ документами, как и в моём примере. Далее вам необходимо Ñоздать в Ñтой папке файл *.Renviron*. И пропиÑать в нём значение некоторых переменных, которые иÑпользуютÑÑ Ð² `rfacebookstat`: * RFB_TOKEN_PATH - Путь к папке в которой у Ð²Ð°Ñ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑÑ Ñ„Ð°Ð¹Ð» Ñ Ñ€Ð°ÑˆÐ¸Ñ€ÐµÐ½Ð¸ÐµÐ¼ *.rfb_auth.rds*, в котором хранÑÑ‚ÑÑ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ðµ данные. * RFB_USER - Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Facebook, который вы указали в аргументе *username* при прохождении авторизации Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `fbAuth()`. * RFB_API_TOKEN - Полученный Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `fbAuth()` токен доÑтупа к API. Ðа Ñамом деле указывать вÑе три переменные не имеет ÑмыÑла, наибольший приоритет имеет Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ **RFB_API_TOKEN**. ЕÑли она указана то оÑтальные две переменные игнорируютÑÑ. Ðо иÑпользовать Ñту переменную имеет ÑмыÑл только еÑли вы получили беÑÑрочный токен доÑтупа, Ñ‚.к. пакет не может обновить переменную Ñреды, и еÑли токен имеет Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾ его иÑтечению вы получите ошибку. Ð’ Ñлучае еÑли вы прошли авторизацию через ÑобÑтвенное приложение, и получили токен Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð½Ñ‹Ð¼ Ñроком дейÑтвиÑ, Ñледует иÑпользовать переменные **RFB_TOKEN_PATH** и **RFB_USER**. Указав Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ путь к папке в которую был Ñохранён файл Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ данными в процеÑÑе авторизации через функцию `fbAuth()`, при авторизации вы можете указать папку Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ аргумента *token_path*. По умолчанию файл ÑохранÑетÑÑ Ð² рабочей директории на момент Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. Т.е. у вы можете наÑтроить файл *.Renviron* одним из двух вариантов. ``` RFB_API_TOKEN="abcdef788dsydsy9dcy" ``` Где `abcdef788dsydsy9dcy` ваш токен Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Facebook API. Либо: ``` RFB_USER="seleznev_a" RFB_TOKEN_PATH="D:/fb_auth_store" ``` ### ÐаÑтройка переменных Ñреды в Windows Ð’ Windows можно Ñоздать переменные Ñреды Ñледующем ÑпоÑобом: 1. Ð’ Ñтроке "ПоиÑк" выполните поиÑк: СиÑтема (Панель управлениÑ) 2. Ðажмите на ÑÑылку Дополнительные параметры ÑиÑтемы. 3. Ðажмите Переменные Ñреды. 4. Ðажмите кнопку "Создать..." 5. Создайте нужные вам переменные, перечиÑленные в прошлом пункте.  ### Задать в начале Ñкрипта Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды Ещё один ÑпоÑоб, до Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð° `rfacebookstat` в Ñкрипте задать переменные Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `Sys.setenv()`. ```r Sys.setenv(RFB_USER="seleznev_a", RFB_TOKEN_PATH="D:/fb_auth_store") library(rfacebookstat) ``` ### Как определить что вы уÑпешно уÑтановили переменные Ñреды ЕÑли вы правильно определили переменные Ñреды при подключении пакета в приветÑтвенном Ñообщении вы увидите отметку 'success' напротив уÑпешно уÑтановленных переменных. Ðапример еÑли вы уÑтановили Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ путь к папке то вы увидите Ñледующее Ñообщение: ``` rfacebookstat presets: ...Set rfacebookstat token_path: success ...Set rfacebookstat username: success ...Set rfacebookstat access_token: none ...Set Facebook Marketing API Version: v5.0 ``` ## Опции Ещё один вариант инициализации учётных данных задать их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опций. Также опции позволÑÑŽÑ‚ избежать Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² без необходимоÑти. Ð’Ñе опции вы можете задать в начале Ñкрипта поÑле Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð°. Ð’ rfacebookstat доÑтупны Ñледующие опции: * rfacebookstat.api_version - ВерÑÐ¸Ñ API к которой пакет будет направлÑть запроÑÑ‹, не рекомендуетÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñть Ñту опцию; * rfacebookstat.access_token - Ваш токен доÑтупа, также не рекомендуетÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ñ‚ÑŒ его текÑтом в ваших Ñкриптах; * rfacebookstat.accounts_id - ID аккаунтов которые вы иÑпользуете в Ñкрипте по умолчанию, можно задавать вектором; * rfacebookstat.business_id - ID Ð±Ð¸Ð·Ð½ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° который вы планируете иÑпользовать в Ñкрипте по умолчанию * rfacebookstat.token_path - Путь к папке, где хранÑÑ‚ÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ данными; * rfacebookstat.username - Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ facebook; * rfacebookstat.app_id - ID Ñозданного вами Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Facebook Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸; * rfacebookstat.app_secret - Секрет Ñозданного вами Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Facebook. Пример иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð¿Ñ†Ð¸Ð¹: ``` library(rfacebookstat) options(rfacebookstat.username = "seleznev_a", rfacebookstat.token_path = ""D:/fb_auth_store") ``` ПоÑле уÑтановки опций ÐºÐ°Ð¶Ð´Ð°Ñ Ð¸Ð· функций пакета будет запрашивать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва аргументов именно из опций, что избавит вам от излишнего Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтих значений в коде. Так же Ð´Ð»Ñ ÑƒÑтановки опций в пакете реализован набор функций Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом `fbSet*()`. * `fbSetUsername(username)` - уÑтановка Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ * `fbSetAccount(accounts_ids)` - уÑтановка идентификатор аккаунтов * `fbSetBusinessId(business_ids)` - уÑтановка идентификаторов Ð±Ð¸Ð·Ð½ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð¾Ð² * `fbSetTokenPath(token_path)` - уÑтановка пути к папке Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ñ‚Ð¾ÐºÐµÐ½Ð°Ð¼Ð¸ * `fbSetApiVersion(api_version)` - уÑтановка верÑии API ## Приоритет переменных Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ Ð’ каждом запроÑе к API необходимо передавать учётные данные, при Ñтом ÐºÐ°Ð¶Ð´Ð°Ñ Ð¸Ð· функций пакета оÑущеÑтвлÑет поиÑк учётных данных по Ñледующему пути. 1. Заданные в функции аргументы; 2. Опции; 3. Переменные Ñреды. СоответÑтвенно аргументы функции имеют макÑимальный приоритет. # Рекомендации Ðаиболее проÑтой и правильный ÑпоÑоб Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð¼ `rfacebookstat` иÑпользовать переменные Ñреды Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пути к папке Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ в которых хранÑÑ‚ÑÑ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ðµ данные. С помощью опций уÑтанавливать дефолтные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾Ð³Ð¾ Ð±Ð¸Ð·Ð½ÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ€Ð° и ÑпиÑка аккаунтов под каждый конкретный Ñкрипт. Данный подход избавит Ð²Ð°Ñ Ð¾Ñ‚ избыточноÑти и дублирование в коде. ## Получить ÑпиÑок логинов под которыми была пройдена Ð°Ð²Ñ‚Ð¾Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¡ помощью функции `fbGetLogins()` вы можете запрашивать ÑпиÑок логинов, под которыми вы уже уÑпешно прошли авторизацию, и переключатьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ ними.