2016-05-18 5 views
3

У меня есть shinyapp, и я хочу включить определенные функции для пользователей, которые заходят в приложение, используя google login. Я не могу реализовать процесс регистрации и аутентификации Google в своем приложении с помощью пакета GoogleAuthR. Есть ли у кого-нибудь пример образца ShinyApp, который позволяет аудитории регистрироваться через любой из Google или любых других разрешений на социальный форум.ShinyApp Google Войти

Оцените демо с кодом.

PS: У меня нет намерения продолжить статистику по данным Google, но я только хочу, чтобы избавиться от хлопот создания модуля входа в системе для моего приложения, и пусть Google Войти заботиться о стычках

Спасибо SD

+1

Посмотрите здесь? https://cran.r-project.org/web/packages/googleAuthR/vignettes/googleAuthR.html – Annabelle

+0

Я относительно новичок в этом мире, поэтому, пожалуйста, извините мое невежество. На основе приведенного ниже документа: https://developers.google.com/+/web/signin/#enable_the_google_api. , Я попытался создать свой идентификатор клиента и секрет. Мое приложение находится в shinyapps.io, поэтому я ввел в поле Authorized JavaScript origins следующий URI https: //dmarket/shinyapps.io (ссылка на мое приложение https://dmarket.shinyapps.io/Main, поэтому не была уверенна, что вводить) , Теперь, чтобы протестировать вход в систему, я могу проверить его локально в RStudio или развернуть код из вашего документа access_token <- callModule (googleAuth, «loginButton») непосредственно в shinyapps.io –

+0

Вы можете протестировать его локально, добавив порт и localhost на экран проекта Google (например, 127.0.0.1:1221) - ознакомьтесь с шагами настройки в файле readme https://github.com/MarkEdmondson1234/googleAuthR#google-api-setup – MarkeD

ответ

2

Существует пример в readme, что вы можете увидеть, работая как Shiny app here

Если вы намереваетесь его только на входе в целях, проверьте GoogleID пакет, который построен с googleAuthR с этим в виду.

Пример кода ниже:

## in global.R 
library(googleAuthR) 
library(shiny) 

options(googleAuthR.scopes.selected = "https://www.googleapis.com/auth/urlshortener") 
options(googleAnalyticsR.webapp.client_id = "YOUR_PROJECT_KEY") 
options(googleAnalyticsR.webapp.client_secret = "YOUR_CLIENT_SECRET") 

shorten_url <- function(url){ 

    body = list(
    longUrl = url 
) 

    f <- gar_api_generator("https://www.googleapis.com/urlshortener/v1/url", 
         "POST", 
         data_parse_function = function(x) x$id) 

    f(the_body = body) 

} 

## server.R 
source("global.R") 

server <- function(input, output, session){ 

    ## Create access token and render login button 
    access_token <- callModule(googleAuth, "loginButton") 

    short_url_output <- eventReactive(input$submit, { 
    ## wrap existing function with_shiny 
    ## pass the reactive token in shiny_access_token 
    ## pass other named arguments 
    with_shiny(f = shorten_url, 
       shiny_access_token = access_token(), 
       url=input$url) 

    }) 

    output$short_url <- renderText({ 

    short_url_output() 

    }) 
} 

## ui.R 
ui <- fluidPage(
    googleAuthUI("loginButton"), 
    textInput("url", "Enter URL"), 
    actionButton("submit", "Shorten URL"), 
    textOutput("short_url") 
) 


### If the above global.R, server.R and ui.R files are in folder "test" like so: 
## /home 
## |->/test/ 
##   /global.R 
##   /ui.R 
##   /server.R 
## 
## Port 1221 has been set in your Google Project options as the port to listen to 
## as explained in authentication setup section 
## run below in /home directory 
shiny::runApp("./test/", launch.browser=T, port=1221) 
+0

Спасибо всем. Кто-нибудь реализовал логин facebook, а также в shinyApp? –

+0

Насколько мне известно, хотя это не большое изменение в коде, поскольку оба они используют OAuth2. – MarkeD

+0

Я постараюсь выяснить, могу ли я использовать работу, выполненную в GoogAuth, и основываться на ней. Проблема может быть связана с URL-адресом обратного вызова –