GitHub - rladies/meetupr: R interface to the meetup.com API (original) (raw)

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 supportfor 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 thisissue.

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 CRANsoon.

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 byrappdirs::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 theR-Ladies San Franciscomeetup.

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…⁴ #> #> 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 , venue_name , #> # venue_address , venue_city , venue_state , venue_zip , #> # venue_country , time , 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 #> #> 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 , timezone , #> # join_mode , who , isPrivate , category_id , #> # category_name , country , 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 openissues, 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 tohear 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.