README.md

meetupr Zane Dax @StarTrek_Lt

Logo by Zane Dax @StarTrek_Lt

⚠️ ALERT TO USERS:

Meetup has deprecated the REST API that’s used in this package. We are working to add support for their new API but unfortnately that means that the package is not currently functional. If you’d like to help with this transition in any way (we could use help with testing and documentation in particular), please comment on the this issue.

R-CMD-check Codecov test
coverage

R interface to the Meetup API (v3)

Installation

To install the development version from GitHub:

# install.packages("remotes")
remotes::install_github("rladies/meetupr")

A released version will be on CRAN soon.

Usage

Authentication

API key? No

As of August 15, 2019, Meetup.com switched from an API key based authentication system to OAuth 2.0, so we added support for OAuth.

OAuth? Yes

Meetup API and this package recommend using OAuth for authentication. We’ve abstracted part of the difficulty but it’s still a bit more complex than storing a simple API key as secret.

With OAuth you need

Let’s go through workflows and ways to control how your token is created and cached.

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")

And all the times you use meetupr again, this token will be used, and refreshed and re-saved as needed.

This is, we hope, a sensible default.

Now if you want to have a different behavior you either tweak options (in your .Rprofile so for all sessions in the future, or just in the current session), or call the meetup_auth() function directly.

Functions

See the pkgdown reference.

For example, the following code will get all upcoming events for the R-Ladies San Francisco meetup.

library(meetupr)

urlname <- "rladies-san-francisco"
events <- get_events(urlname)
dplyr::arrange(events, desc(time))
#> # A tibble: 63 × 18
#>    id        title    link  status durat…¹ going waiting descr…² venue…³ venue…⁴
#>    <chr>     <chr>    <chr> <chr>  <chr>   <int>   <int> <chr>   <chr>     <dbl>
#>  1 280404371 Data St… http… PAST   PT1H30M    61       0 "=====… 269060…   -8.52
#>  2 277757076 Buildin… http… PAST   PT2H       70       0 "Build… 269060…   -8.52
#>  3 273036282 A conve… http… PAST   PT2H       30       0 "Fires… 269060…   -8.52
#>  4 272407729 Tangibl… http… PAST   PT1H30M    45       0 "Tangi… 269060…   -8.52
#>  5 267967077 R-Ladie… http… PAST   PT2H       95       0 "Just … 260586…   37.8 
#>  6 266395328 Decembe… http… PAST   PT2H30M    98       0 "Join … 261907…   37.8 
#>  7 265100301 Worksho… http… PAST   PT2H       40       0 "\"Tra… 266458…   37.8 
#>  8 263230714 August … http… PAST   PT2H       58       0 "1. Bu… 265200…   37.6 
#>  9 262717409 R-Ladie… http… PAST   PT3H       18       0 "Come … 260979…   37.8 
#> 10 262662040 Bayesia… http… PAST   PT2H       57       0 "MAIN … 260597…   37.8 
#> # … with 53 more rows, 8 more variables: venue_lon <dbl>, venue_name <chr>,
#> #   venue_address <chr>, venue_city <chr>, venue_state <chr>, venue_zip <chr>,
#> #   venue_country <chr>, time <dttm>, and abbreviated variable names ¹​duration,
#> #   ²​description, ³​venue_id, ⁴​venue_lat
#> # ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

We can also search for groups with free text.

groups <- find_groups("R-Ladies")
dplyr::arrange(groups, desc(created))
#> # A tibble: 189 × 17
#>    id       name             urlname latit…¹ longi…² city  state membe…³ members
#>    <chr>    <chr>            <chr>     <dbl>   <dbl> <chr> <chr> <chr>     <int>
#>  1 36221103 R-Ladies Honolu… rladie…    21.3 -158.   Hono… "HI"  LEADER       11
#>  2 36221061 R-Ladies Rabat   rladie…    34.0   -6.83 Rabat ""    LEADER      145
#>  3 36155475 R-Ladies Morelia rladie…    19.7 -101.   More… ""    LEADER       97
#>  4 36155463 R-Ladies Ciudad… rladie…    27.5 -110.   Ciud… ""    LEADER        2
#>  5 36128420 R-Ladies Rome    rladie…    41.9   12.5  Roma  "RM"  LEADER       25
#>  6 36128390 R-Ladies Oxford… rladie…    34.4  -89.5  Oxfo… "MS"  LEADER        3
#>  7 35897820 R-Ladies Gaboro… rladie…   -24.6   25.9  Gabo… ""    LEADER      490
#>  8 35897809 R-Ladies Cologne rladie…    50.9    6.96 Colo… ""    LEADER      178
#>  9 35897790 R-Ladies West L… rladie…    40.5  -87.0  West… "IN"  LEADER        9
#> 10 35897779 R-Ladies Villah… rladie…    18.0  -92.9  Vill… ""    LEADER      116
#> # … with 179 more rows, 8 more variables: created <dttm>, timezone <chr>,
#> #   join_mode <chr>, who <chr>, isPrivate <lgl>, category_id <chr>,
#> #   category_name <chr>, country <chr>, and abbreviated variable names
#> #   ¹​latitude, ²​longitude, ³​membershipMetadata.status
#> # ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

How can you contribute?

We are looking for new people to join the list of contributors! Please take a look at the open issues, file a new issue, contribute tests, or improve the documentation. We are also looking to expand the set of functions to include more endpoints from the Meetup API. Lastly, we’d also love to hear about any applications of the meetupr package, so we can compile a list of demos!

Please note that the this project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.



rladies/meetupr documentation built on Nov. 18, 2022, 8:14 a.m.