【问题标题】:googleAnalyticsR/googleAuthR token seems to expire in shiny markdowngoogleAnalyticsR/googleAuthR 令牌似乎在闪亮的降价中过期
【发布时间】:2019-08-13 14:48:29
【问题描述】:

这是我的问题。

我通过 R 和 googleAnalyticsR 访问 Google Analytics API。整个事情发生在一个 Markdown 脚本中。本地一切运行没有问题。但是当我在 Shiny Sever 上加载脚本时,GA 令牌似乎会在一段时间(几个小时)后过期。

服务器日志给出以下错误信息:

gzfile(file, mode) 中的警告: 无法打开压缩文件“.httr-oauth”,可能的原因是“权限被拒绝”

创建令牌的脚本如下所示:

library(googleAuthR)

options(googleAuthR.client_id = "client-id",
        googleAuthR.client_secret = "client-secret")

gar_auth()

我读到我应该添加

googleAuthR.httr_oauth_cache = FALSE 

到选项。但是当我这样做并尝试创建一个新令牌时,我得到以下错误:

Error: option('googleAuthR.httr_oauth_cache') must be set to 
         valid cache file location, 
         not TRUE or FALSE - (example: '.httr-oauth')

任何人的想法?

非常感谢

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    问题不在于令牌过期,包googleAnalyticsR 会在需要时负责刷新它。

    问题是令牌没有在服务器上创建(我假设您在本地创建然后推送到服务器),因此出现错误:

    Warning in gzfile(file, mode) : cannot open compressed file '.httr-oauth', probable reason 'Permission denied'
    

    运行您的应用的shinyuser 没有打开该文件的权限。 我不是安全专家,所以请轻描淡写。您从应用程序的根目录(在您的服务器上)运行以下命令,错误就会消失。

    sudo chmod -R 777 .httr-oauth
    

    以上将让shiny 访问该文件。

    【讨论】:

    • 感谢您的回答。您是对的,令牌是在本地创建然后推送到服务器的。但是令牌将在一段时间内有效。这就是为什么我认为访问已过期。
    • 谢谢,这就是问题所在。我没有向所有用户 (777) 授予访问权限,而是向 Shiny App 授予访问权限。现在令牌的更新运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2018-11-27
    • 2017-02-25
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多