使用Rstudio服务器时在httr中配置侦听器_端点

使用Rstudio服务器时在httr中配置侦听器_端点,r,google-analytics,rstudio,httr,rstudio-server,R,Google Analytics,Rstudio,Httr,Rstudio Server,一、 "我正在努力使用httroauth2.0功能连接到谷歌分析 oauth2.0_token(oauth_endpoints("google") , oauth_app("google", client.id, client.secret) , scope = "https://www.googleapis.com/auth/analytics.readonly") 它在我本地的Rstudio中工作得很好,但在基于AWS的Rstudio服务器中却出现了故障。当我同意在浏览器中传递数据

一、 "我正在努力使用
httr
oauth2.0功能连接到谷歌分析

oauth2.0_token(oauth_endpoints("google")
  , oauth_app("google", client.id, client.secret)
  , scope = "https://www.googleapis.com/auth/analytics.readonly")
它在我本地的Rstudio中工作得很好,但在基于AWS的Rstudio服务器中却出现了故障。当我同意在浏览器中传递数据,谷歌将我重定向到该页面时,就会出现错误

在本地Rstudio中启动身份验证时,浏览器会以消息“身份验证完成”进行响应。请关闭此网页并返回R,如果是Rstudio服务器,则此网页不可用


我怀疑我需要更改listener_端点配置,但如何更改?我应该把我的Rstudio服务器地址改为默认127.0.0.1吗?或者是httr+Rtudio服务器的缺陷,我不应该麻烦

您可以使用带外身份验证-

options(httr_oob_default = TRUE)

重定向URI是问题的一部分。Httr的oauth2.0_token()函数确定正确的一个。当您设置项目时,Google Analytics创建了两个重定向URI,一个可用于RStudio IDE(本地),另一个可用于RStudio基于web的环境中进行带外身份验证:“urn:ietf:wg:oauth:2.0:oob”

一旦您进行了身份验证,下面的代码应该可以工作

library(httr)
ga_id         <- YourProjectID
client_id     <- YourClientID
redirect_uri  <- 'urn:ietf:wg:oauth:2.0:oob'
scope         <- YourScope 
client_secret <- YourSecret
response_type <-'code'

auth1 <- oauth2.0_token(
   endpoint = oauth_endpoints("google"),
   app = oauth_app(
      "google", 
      key = client_id, 
      secret = client_secret
      ),
   scope,
   use_oob = TRUE,
   cache = TRUE
)
库(httr)

我会在本地做的。将令牌另存为r数据文件。将其上传到AWS并使用缓存令牌。这正是我现在所做的,但我认为其他人也会对更优雅的解决方案感兴趣