使用 Rstudio 服务器时在 httr 中配置 listener_endpoint
Configuring listener_endpoint in httr when using Rstudio server
我正在努力使用 httr
oauth2.0 函数
连接到 Google 分析
oauth2.0_token(oauth_endpoints("google")
, oauth_app("google", client.id, client.secret)
, scope = "https://www.googleapis.com/auth/analytics.readonly")
它在我本地的 Rstudio 中完美运行,但在基于 AWS 的 Rstudio Server 中却出现问题。当我同意在浏览器中传递数据并且 Google 将我重定向到页面时出现错误
http://localhost:1410/?state=codehere
在本地 Rstudio 中启动身份验证时,浏览器响应消息 - 身份验证完成。请关闭此页面并return到R,如果Rstudio服务器只是此网页不可用
我怀疑我需要更改 listener_endpoint 配置,但是如何?我应该输入我的 Rstudio 服务器地址而不是默认的 127.0.0.1 吗?还是 httr+Rtudio 服务器 的缺陷,我不应该打扰?
您可以使用带外身份验证 -
options(httr_oob_default = TRUE)
您的重定向 URI 是问题的一部分。 Httr 的 oauth2.0_token() 函数识别正确的。当您设置您的项目时,Google Analytics 创建了两个重定向 URI,一个可以在您的 RStudio IDE(本地)上使用,另一个可以在 RStudio 基于网络的环境中用于输出-带外认证:“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
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 Server 中却出现问题。当我同意在浏览器中传递数据并且 Google 将我重定向到页面时出现错误 http://localhost:1410/?state=codehere
在本地 Rstudio 中启动身份验证时,浏览器响应消息 - 身份验证完成。请关闭此页面并return到R,如果Rstudio服务器只是此网页不可用
我怀疑我需要更改 listener_endpoint 配置,但是如何?我应该输入我的 Rstudio 服务器地址而不是默认的 127.0.0.1 吗?还是 httr+Rtudio 服务器 的缺陷,我不应该打扰?
您可以使用带外身份验证 -
options(httr_oob_default = TRUE)
您的重定向 URI 是问题的一部分。 Httr 的 oauth2.0_token() 函数识别正确的。当您设置您的项目时,Google Analytics 创建了两个重定向 URI,一个可以在您的 RStudio IDE(本地)上使用,另一个可以在 RStudio 基于网络的环境中用于输出-带外认证:“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
)
-- 安