如何在r包meetupr中重新运行认证?

How to re-run the authentication in the r package meetupr?

我正在尝试使用此存储库中的 meetupr 包:https://github.com/rladies/meetupr。根据自述文件,当 运行 执行 meetupr 函数时,将首次创建令牌。就我而言,Meetup 服务器在我使用该软件包时出现问题,这就是我无法登录和生成令牌的原因。现在,在尝试 运行 meetupr 时,我收到错误消息

Cannot read token from alleged .rds file:
~/.local/share/meetupr/meetupr-token.rds

此错误消息中提到的文件是空的。

例如当我 运行:

时会出现此错误
library(meetupr)
find_groups(text = "book")

OS: Ubuntu 20.04

R: 版本 4.1.2

浏览器:Firefox 94.0

我已经尝试 remove.packages("meetupr")install.packages("meetupr") 了,但没有用。

如何重新运行验证函数以在此文件中创建令牌?

您没有详细描述您的所有操作以及您的系统应用程序告诉您的内容。我举了一个你可能会提供的例子。显然你不会 post 一样,但这应该给你一个例子,说明完整过程的更完整描述可能是什么样子:


我无法在 Ubuntu 18.04 上重现此错误 运行 R 4.0.4,将 Chrome 作为我的默认浏览器;根据 github 页面和 运行 该代码安装包后,我首先看到此消息 ...

...点击允许后,弹出一个新页面...

按照说明关闭该页面后,我在控制台看到了这个:

> find_groups(text = "book")
Adding ~/.local/share/meetupr/meetupr-token.rds to .gitignore
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.
Downloading 16722 record(s)...
Error in curl::curl_fetch_memory(url, handle = handle) : 
  Operation was aborted by an application callback

我厌倦了等待那么多记录下载并点击逃生,运行:

`meetupr-token` <- readRDS("/home/david/.local/share/meetupr/meetupr-token.rds")
`meetupr-token`
$`3a1a-munged--7b8e764968950`
<Token>
<oauth_endpoint>
 authorize: https://secure.meetup.com/oauth2/authorize
 access:    https://secure.meetup.com/oauth2/access
<oauth_app> meetup
  key:    2vag-munged-b32tca763m1
  secret: <hidden>
<credentials> access_token, refresh_token, token_type, expires_in
---

所以文件不是空的。然后我重新 运行 调用 find_groups 函数使用一个不太广泛的搜索词,并得到(没有任何弹出浏览器页面):

find_groups(text = "Tai chi")
Downloading 863 record(s)...
# A tibble: 863 × 21
       id name  urlname status   lat     lon city  state country created            
    <int> <chr> <chr>   <chr>  <dbl>   <dbl> <chr> <chr> <chr>   <dttm>             
 1 3.08e7 Beac… Beachs… active  35.2  -83.4  Fran… "NC"  USA     2018-12-24 04:28:57
 2 3.17e7 Tai … Tai-Ch… active  26.2  -80.3  Fort… "FL"  USA     2019-04-25 16:10:30
 3 3.46e7 The … the-ta… active  33.2 -117.   Ocea… "CA"  USA     2021-01-01 01:10:51
 4 8.42e5 The … sifu-t… active  40.9  -73.8  Bron… "NY"  USA     2007-11-26 02:16:11
 5 2.68e7 Yang… Yangsh… active  51.8   -0.83 Ayle… "B9"  United… 2017-12-07 09:00:56
 6 3.40e7 Drag… Dragon… active  41.6  -72.8  Berl… "CT"  USA     2020-08-02 11:18:44
 7 2.68e7 Tai … Tai-Ch… active -33.9   18.5  Cape… ""    South … 2017-12-08 23:39:01
 8 2.39e7 The … The-Sc… active  50.8   -0.15 Brig… "P6"  United… 2017-05-21 14:02:24
 9 2.26e7 Auck… Auckla… active -36.8  175.   Auck… ""    New Ze… 2017-02-26 01:06:20
10 1.87e7 Tai … Larkers active  45.0  -93.2  Minn… "MN"  USA     2015-06-26 16:27:37
# … with 853 more rows, and 11 more variables: members <int>, timezone <chr>,
#   join_mode <chr>, visibility <chr>, who <chr>, location <chr>,
#   organizer_id <int>, organizer_name <chr>, category_id <int>,
#   category_name <chr>, resource <list>

删除位于以下命令返回的文件夹中的 .rds 文件应该有所帮助:

rappdirs::user_data_dir("meetupr", "meetupr")

If you don’t tweak anything, the first time you run a meetupr function, you’ll be prompted to go into your browser and a token will be created. It will be saved to disk in an app directory as determined by rappdirs::user_data_dir("meetupr", "meetupr")

(来源:meetupr README

所以我认为发生的事情是虽然身份验证不成功,但文件仍然创建但内部没有有效令牌。 meetupr 认为如果你有这个文件,你就有了一个有效的令牌。 删除文件应该会重新触发 oauth 流程。