Unauthorized error
Closed this issue · 11 comments
I've just installed the current meetupr with remotes::install_github("rladies/meetupr")
and tried checking the function from the README. I got redirected to the webpage, where I successfully authorized meetupr to use my meetup account and then I get unauthorized error each time I want to run a function from meetupr:
library(meetupr)
rladies_groups <- find_groups(topic_id = 1513883)
#> Auto-refreshing stale OAuth token.
#> Error in fun(api_path = "find/groups", event_status = NULL, offset = 0, :
#> Unauthorized (HTTP 401).
I've checked:
- my meetup account lists meetupr as authorized app
- restarting RStudio
- running
meetup_deauth()
and then re-creating the token, saving to an object and using this one:
meetup_deauth()
#> Disabling ~/.local/share/meetupr/meetupr-token.rds by renaming to ~/.local/share/meetupr/meetupr-token.rds-SUSPENDED
#> Removing google token stashed internally in 'meetupr'.
ttt <- meetup_auth()
#> Waiting for authentication in browser...
#> Press Esc/Ctrl + C to abort
#> Authentication complete.
saveRDS(ttt, "ttt.rds")
meetup_auth(token = ttt)
rladies_groups <- find_groups(topic_id = 1513883) # this is the topic ID for R-Ladies
#> Auto-refreshing stale OAuth token.
#> Error in fun(api_path = "find/groups", event_status = NULL, offset = 0, :
#> Unauthorized (HTTP 401).
I'm using R 4.1.2 on RStudio 2021.09.2, running on Linux (Ubuntu 18.04)
Thanks for reporting and sorry about this. We're all having this problem right now. We are aware that the Meetup REST API which the current meetupr
package is built around will no longer be available, and we're working to switch the package to the new GraphQL API which is the API Meetup wants people to use moving forward.
Please take a look here: #118
OK, thank you for the explanation! I'll be waiting patiently. :) You might want to put this information on README for others to be aware of.
@jromanowska Good suggestion. I added a warning here. Sorry that we were not able to get the new API code completed before Meetup killed the old API. :-/
Oh, I can help - at least with testing! :)
Oh, I can help - at least with testing! :)
Thanks! You can start trying things out from here: #138
Thanks! @benubah - I've tried building the package as it is in the 'ben' branch, but I get the error could not find function "%||%"
when I try to run your testing function x <- gql_health_check()
.
I tried searching that operator on the net, but I can't find anything. What am I doing wrong?
P.S. I've installed all the 'imports' and 'suggests' packages.
thanks @jromanowska for taking a look. I test by:
git pull
ing the latest commits onben
,- make sure i'm on the
ben
branch, - run
devtools::load_all()
, - authenticate using
meetup_auth()
- then
x <- gql_health_check()
Strange - now it worked :D
OK - here's my output. It seems like all's working apart from get_events2(urlname = "Data-Science-DC", .extra_graphql = "host { name }")
devtools::load_all("~/REPOS/meetupr")
#> ℹ Loading meetupr
meetup_auth()
x <- gql_health_check(); utils::str(x)
#> chr "pass"
x <- get_events2(urlname = "Data-Visualization-DC"); utils::str(x)
#> tibble [128 × 18] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:128] "284630497!chp" "284630497!chp" "103349942!chp" "107867022!chp" ...
#> $ title : chr [1:128] "Joint Event: Visualizing Metrics" "Joint Event: Visualizing Metrics" "Ecosystem GIS & Community Building" "Data Shamrock" ...
#> $ link : chr [1:128] "https://www.meetup.com/Data-Visualization-DC/events/284630497" "https://www.meetup.com/Data-Visualization-DC/events/284630497" "https://www.meetup.com/Data-Visualization-DC/events/103349942" "https://www.meetup.com/Data-Visualization-DC/events/107867022" ...
#> $ status : chr [1:128] "published" "published" "PAST" "PAST" ...
#> $ time : POSIXct[1:128], format: "2022-03-31 20:00:04" "2022-03-31 20:00:04" ...
#> $ duration : chr [1:128] "PT1H30M" "PT1H30M" "PT2H" "PT0S" ...
#> $ going : int [1:128] 44 44 97 8 139 160 190 224 138 20 ...
#> $ waiting : int [1:128] 0 0 0 0 4 17 0 0 0 3 ...
#> $ description : chr [1:128] "Our March 31st online event will feature Illustrator and DataViz Designer Ray Vella!\n\nRay's talk will provide"| __truncated__ "Our March 31st online event will feature Illustrator and DataViz Designer Ray Vella!\n\nRay's talk will provide"| __truncated__ "Hello New DVDC Members!\n\nIs Data Visualization a science or an art? Our goal is to create great events where "| __truncated__ "Dear DataViz,\n\nMany of you are part of Data Community DC in general (DSDC (http://www.meetup.com/Data-Science"| __truncated__ ...
#> $ venue_id : chr [1:128] "26906060" "26906060" "10975182" "9877812" ...
#> $ venue_lat : num [1:128] -8.52 -8.52 38.91 38.89 38.91 ...
#> $ venue_lon : num [1:128] 179.2 179.2 -77 -77.1 -77 ...
#> $ venue_name : chr [1:128] "Online event" "Online event" "Browsermedia/NClud" "Mad Rose Tavern" ...
#> $ venue_address: chr [1:128] "" "" "1203 19th Street" "3100 Clarendon Blvd." ...
#> $ venue_city : chr [1:128] "" "" "Washington" "Arlington" ...
#> $ venue_state : chr [1:128] "" "" "DC" "VA" ...
#> $ venue_zip : chr [1:128] "" "" "20036" "22201" ...
#> $ venue_country: chr [1:128] "" "" "United States" "United States" ...
x <- get_events2(urlname = "R-Users"); utils::str(x)
#> tibble [156 × 18] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:156] "8375434!chp" "9633574!chp" "9573566!chp" "9718957!chp" ...
#> $ title : chr [1:156] "sofTECH - Open Source Business Intelligence" "Cloud computing on an R-based platform" "The R and Science of Predictive Analytics: Four Case Studies in R" "Creating R Packages - Spencer Graves & Sundar Dorai-Raj" ...
#> $ link : chr [1:156] "https://www.meetup.com/R-Users/events/8375434" "https://www.meetup.com/R-Users/events/9633574" "https://www.meetup.com/R-Users/events/9573566" "https://www.meetup.com/R-Users/events/9718957" ...
#> $ status : chr [1:156] "PAST" "PAST" "PAST" "PAST" ...
#> $ time : POSIXct[1:156], format: "2008-09-24 18:30:07" "2009-02-04 19:00:08" ...
#> $ duration : chr [1:156] "PT0S" "PT0S" "PT0S" "PT0S" ...
#> $ going : int [1:156] 4 8 67 22 44 70 58 8 8 87 ...
#> $ waiting : int [1:156] 0 0 0 2 5 2 0 0 0 0 ...
#> $ description : chr [1:156] "Not an \"official\" use R Group meeting, but one where Mike & Jim will be discussing the use of R as a business"| __truncated__ "7:00pm - Drinks, snacks, and mingling\n7:15pm - Introduction of Karim by Jim and Mike\n8:00pm - Q & A\n\nWHAT I"| __truncated__ "2009 Kick-off Meeting\n\nWelcome & Upcoming Meeting Plan.\n\nPanel Discussion - The R and Science of Predictive"| __truncated__ "6:30 - 7:00: Informal pRograming Q&A - bring your challenges & solutions!\n\n7:00 - 8:00: Creating R Packages, "| __truncated__ ...
#> $ venue_id : chr [1:156] "715921" "1689361" "858522" "1689361" ...
#> $ venue_lat : num [1:156] 38 37.8 37.8 37.8 37.8 ...
#> $ venue_lon : num [1:156] -123 -122 -122 -122 -122 ...
#> $ venue_name : chr [1:156] "San Rafael Corporate Center" "CO-Spot LLC" "Predictive Analytics World" "CO-Spot LLC" ...
#> $ venue_address: chr [1:156] "750 Lindaro St" "350 Townsend St" "222 Mason Street, Hotel Nikko" "350 Townsend St" ...
#> $ venue_city : chr [1:156] "San Rafael " "San Francisco" "San Francisco" "San Francisco" ...
#> $ venue_state : chr [1:156] "CA" "Ca" "CA" "Ca" ...
#> $ venue_zip : chr [1:156] "94901" "94107" "94102" "94107" ...
#> $ venue_country: chr [1:156] "United States" "United States" "United States" "United States" ...
x <- get_events2(urlname = "Data-Science-DC"); utils::str(x)
#> tibble [130 × 18] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:130] "284492145!chp" "283823601!chp" "284492145!chp" "283823601!chp" ...
#> $ title : chr [1:130] "Network-based Trajectory Analysis of Topic Interactions for COVID-19 Literature" "Scaling and Distributing Python & ML Applications with Ray" "Network-based Trajectory Analysis of Topic Interactions for COVID-19 Literature" "Scaling and Distributing Python & ML Applications with Ray" ...
#> $ link : chr [1:130] "https://www.meetup.com/Data-Science-DC/events/284492145" "https://www.meetup.com/Data-Science-DC/events/283823601" "https://www.meetup.com/Data-Science-DC/events/284492145" "https://www.meetup.com/Data-Science-DC/events/283823601" ...
#> $ status : chr [1:130] "published" "published" "published" "published" ...
#> $ time : POSIXct[1:130], format: "2022-04-12 18:00:04" "2022-05-10 18:00:04" ...
#> $ duration : chr [1:130] "PT1H30M" "PT1H30M" "PT1H30M" "PT1H30M" ...
#> $ going : int [1:130] 34 53 34 53 49 65 70 65 83 83 ...
#> $ waiting : int [1:130] 0 0 0 0 0 0 3 0 0 0 ...
#> $ description : chr [1:130] "To discover an insightful meaning from the abundant COVID-19 literature, we focused on summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and require distributed execution. Ray is an open-sourc"| __truncated__ "To discover an insightful meaning from the abundant COVID-19 literature, we focused on summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and require distributed execution. Ray is an open-sourc"| __truncated__ ...
#> $ venue_id : chr [1:130] "26906060" "26906060" "26906060" "26906060" ...
#> $ venue_lat : num [1:130] -8.52 -8.52 -8.52 -8.52 38.9 ...
#> $ venue_lon : num [1:130] 179 179 179 179 -77 ...
#> $ venue_name : chr [1:130] "Online event" "Online event" "Online event" "Online event" ...
#> $ venue_address: chr [1:130] "" "" "" "" ...
#> $ venue_city : chr [1:130] "" "" "" "" ...
#> $ venue_state : chr [1:130] "" "" "" "" ...
#> $ venue_zip : chr [1:130] "" "" "" "" ...
#> $ venue_country: chr [1:130] "" "" "" "" ...
x <- get_events2(urlname = "Data-Science-DC", .extra_graphql = "host { name }"); utils::str(x)
#> Error in `get_events2()`:
#> ! `...` must be empty.
#> x Problematic argument:
#> • .extra_graphql = "host { name }"
#> tibble [130 × 18] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:130] "284492145!chp" "283823601!chp" "284492145!chp" "283823601!chp" ...
#> $ title : chr [1:130] "Network-based Trajectory Analysis of Topic Interactions for COVID-19 Literature" "Scaling and Distributing Python & ML Applications with Ray" "Network-based Trajectory Analysis of Topic Interactions for COVID-19 Literature" "Scaling and Distributing Python & ML Applications with Ray" ...
#> $ link : chr [1:130] "https://www.meetup.com/Data-Science-DC/events/284492145" "https://www.meetup.com/Data-Science-DC/events/283823601" "https://www.meetup.com/Data-Science-DC/events/284492145" "https://www.meetup.com/Data-Science-DC/events/283823601" ...
#> $ status : chr [1:130] "published" "published" "published" "published" ...
#> $ time : POSIXct[1:130], format: "2022-04-12 18:00:04" "2022-05-10 18:00:04" ...
#> $ duration : chr [1:130] "PT1H30M" "PT1H30M" "PT1H30M" "PT1H30M" ...
#> $ going : int [1:130] 34 53 34 53 49 65 70 65 83 83 ...
#> $ waiting : int [1:130] 0 0 0 0 0 0 3 0 0 0 ...
#> $ description : chr [1:130] "To discover an insightful meaning from the abundant COVID-19 literature, we focused on summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and require distributed execution. Ray is an open-sourc"| __truncated__ "To discover an insightful meaning from the abundant COVID-19 literature, we focused on summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and require distributed execution. Ray is an open-sourc"| __truncated__ ...
#> $ venue_id : chr [1:130] "26906060" "26906060" "26906060" "26906060" ...
#> $ venue_lat : num [1:130] -8.52 -8.52 -8.52 -8.52 38.9 ...
#> $ venue_lon : num [1:130] 179 179 179 179 -77 ...
#> $ venue_name : chr [1:130] "Online event" "Online event" "Online event" "Online event" ...
#> $ venue_address: chr [1:130] "" "" "" "" ...
#> $ venue_city : chr [1:130] "" "" "" "" ...
#> $ venue_state : chr [1:130] "" "" "" "" ...
#> $ venue_zip : chr [1:130] "" "" "" "" ...
#> $ venue_country: chr [1:130] "" "" "" "" ...
x <- get_members2("rladies-remote"); utils::str(x)
#> tibble [438 × 8] (S3: tbl_df/tbl/data.frame)
#> $ node.id : chr [1:438] "251470805" "213401088" "233963517" "196852297" ...
#> $ node.name : chr [1:438] "R-Ladies Global" "liilia" "Auriel Fournier" "Heather Turner" ...
#> $ node.memberUrl : chr [1:438] "https://www.meetup.com/members/251470805" "https://www.meetup.com/members/213401088" "https://www.meetup.com/members/233963517" "https://www.meetup.com/members/196852297" ...
#> $ node.memberPhoto.baseUrl : chr [1:438] "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" ...
#> $ metadata.status : chr [1:438] "LEADER" "ACTIVE" "ACTIVE" "LEADER" ...
#> $ metadata.role : chr [1:438] "ORGANIZER" "MEMBER" "MEMBER" "COORGANIZER" ...
#> $ metadata.joinedDate : chr [1:438] "2018-06-19T16:31:06-07:00" "2018-06-20T03:46:29-07:00" "2018-06-20T09:22:43-07:00" "2018-06-20T11:50:26-07:00" ...
#> $ metadata.mostRecentVisitDate: chr [1:438] "2022-01-29T11:09:08-08:00" "2018-08-13T10:40:39-07:00" "2022-01-05T14:46:48-08:00" "2022-03-04T10:09:56-08:00" ...
x <- get_event_rsvps2(id = "103349942!chp"); utils::str(x)
#> tibble [70 × 10] (S3: tbl_df/tbl/data.frame)
#> $ user.id : chr [1:70] "12251810!chp" "6382386!chp" "70383262!chp" "8783792!chp" ...
#> $ user.name : chr [1:70] "Sean Moore Gonzalez" "Harnam Rai" "Dario Rivera" "Aaron M" ...
#> $ user.memberUrl: chr [1:70] "https://www.meetup.com/members/12251810" "https://www.meetup.com/members/6382386" "https://www.meetup.com/members/70383262" "https://www.meetup.com/members/8783792" ...
#> $ event.id : chr [1:70] "103349942!chp" "103349942!chp" "103349942!chp" "103349942!chp" ...
#> $ event.title : chr [1:70] "Ecosystem GIS & Community Building" "Ecosystem GIS & Community Building" "Ecosystem GIS & Community Building" "Ecosystem GIS & Community Building" ...
#> $ event.eventUrl: chr [1:70] "https://www.meetup.com/Data-Visualization-DC/events/103349942" "https://www.meetup.com/Data-Visualization-DC/events/103349942" "https://www.meetup.com/Data-Visualization-DC/events/103349942" "https://www.meetup.com/Data-Visualization-DC/events/103349942" ...
#> $ status : chr [1:70] "YES" "YES" "YES" "YES" ...
#> $ guestsCount : int [1:70] 0 0 0 0 0 0 0 0 0 0 ...
#> $ createdAt : chr [1:70] "2022-03-16T08:51:53.082Z[UTC]" "2022-03-16T08:51:53.082Z[UTC]" "2022-03-16T08:51:53.082Z[UTC]" "2022-03-16T08:51:53.082Z[UTC]" ...
#> $ updatedAt : chr [1:70] "2013-02-08T08:43:13-05:00[US/Eastern]" "2013-02-08T08:49:00-05:00[US/Eastern]" "2013-02-08T08:54:22-05:00[US/Eastern]" "2013-02-08T08:57:14-05:00[US/Eastern]" ...
x <- get_event_attendees2(id = "103349942!chp"); utils::str(x)
#> tibble [70 × 4] (S3: tbl_df/tbl/data.frame)
#> $ name : chr [1:70] "Sean Moore Gonzalez" "Harnam Rai" "Dario Rivera" "Aaron M" ...
#> $ memberUrl : chr [1:70] "https://www.meetup.com/members/12251810" "https://www.meetup.com/members/6382386" "https://www.meetup.com/members/70383262" "https://www.meetup.com/members/8783792" ...
#> $ memberPhoto.baseUrl: chr [1:70] "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" "https://secure-content.meetupstatic.com/images/classic-member/" ...
#> $ organizedGroupCount: int [1:70] 0 0 0 0 0 0 0 0 0 0 ...
x <- graphql_file("location", lat = 10.54, lon = -66.93); utils::str(x)
#> List of 1
#> $ data:List of 1
#> ..$ findLocation: list()
#> - attr(*, "method")= chr "POST"
#> - attr(*, "response")=List of 13
#> ..$ connection : chr "keep-alive"
#> ..$ content-length : chr "49"
#> ..$ content-type : chr "application/json"
#> ..$ x-amzn-requestid : chr "c1479f0d-9800-4555-a1f9-90bd6037f7d8"
#> ..$ content-encoding : chr "gzip"
#> ..$ x-amzn-remapped-content-length : chr "29"
#> ..$ x-amz-apigw-id : chr "PEa-rGODoAMFo9g="
#> ..$ cache-control : chr "max-age=300, private"
#> ..$ access-control-allow-methods : chr "OPTIONS,POST"
#> ..$ x-amzn-trace-id : chr "Root=1-6231a52a-21b3661d0478901401d34e9a;Sampled=0"
#> ..$ access-control-allow-credentials: chr "true"
#> ..$ accept-ranges : chr "bytes"
#> ..$ date : chr "Wed, 16 Mar 2022 08:51:54 GMT"
#> ..- attr(*, "class")= chr [1:2] "insensitive" "list"
#> - attr(*, ".send_headers")= Named chr [1:4] "" "https://github.com/r-lib/gh" "application/json" "bearer d28bc5744afc68a7d75161981501f3fd"
#> ..- attr(*, "names")= chr [1:4] "Content-Type" "User-Agent" "Accept" "Authorization"
#> - attr(*, "class")= chr [1:2] "gh_response" "list"
x <- find_groups2(topic_category_id = 546, query = "R-Ladies"); utils::str(x)
#> tibble [185 × 17] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:185] "28424845" "28448818" "34142165" "28706674" ...
#> $ name : chr [1:185] "R-Ladies Santa Fe" "R-Ladies Brisbane" "R-Ladies Tijuana" "R-Ladies Niterói" ...
#> $ urlname : chr [1:185] "rladies-santa-fe" "rladies-brisbane" "rladies-tijuana" "rladies-niteroi" ...
#> $ latitude : num [1:185] -31.6 -27.5 32.5 -22.9 40 ...
#> $ longitude : num [1:185] -60.7 153 -117 -43.1 -105.2 ...
#> $ city : chr [1:185] "Santa Fe" "Brisbane" "Tijuana" "Niterói" ...
#> $ state : chr [1:185] "" "" "" "" ...
#> $ members : int [1:185] 214 766 51 764 257 645 554 970 316 749 ...
#> $ created : POSIXct[1:185], format: "2018-05-08 11:43:12" "2018-05-10 16:33:22" ...
#> $ timezone : chr [1:185] "America/Argentina/Cordoba" "Australia/Brisbane" "America/Tijuana" "America/Sao_Paulo" ...
#> $ join_mode : chr [1:185] "APPROVAL" "OPEN" "OPEN" "OPEN" ...
#> $ who : chr [1:185] "R-Ladies" "R-Ladies" "R-Ladies" "R-Ladies" ...
#> $ isPrivate : logi [1:185] FALSE FALSE FALSE FALSE FALSE FALSE ...
#> $ category_id : chr [1:185] "546" "546" "546" "546" ...
#> $ category_name : chr [1:185] "Technology" "Technology" "Technology" "Technology" ...
#> $ country : chr [1:185] "Argentina" "Australia" "Mexico" "Brazil" ...
#> $ membershipMetadata.status: chr [1:185] NA NA NA NA ...
Created on 2022-03-16 by the reprex package (v2.0.1)
Sorry, does copying, pasting and running this work: x <- get_events2(urlname = "Data-Science-DC", extra_graphql = "host { name }")
?
Yes, that works :)
x <- get_events2(urlname = "Data-Science-DC", extra_graphql = "host { name }")
utils::str(x)
#> tibble [130 × 19] (S3: tbl_df/tbl/data.frame)
#> $ id : chr [1:130] "284492145!chp" "283823601!chp" "284492145!chp" "283823601!chp" ...
#> $ title : chr [1:130] "Network-based Trajectory Analysis of Topic Interactions for COVID-19 Literature" "Scaling and #>Distributing Python & ML Applications with Ray" "Network-based Trajectory Analysis of Topic Interactions for COVID-19 #>Literature" "Scaling and Distributing Python & ML Applications with Ray" ...
#> $ link : chr [1:130] "https://www.meetup.com/Data-Science-DC/events/284492145" "https://www.meetup.com/Data-#>Science-DC/events/283823601" "https://www.meetup.com/Data-Science-DC/events/284492145" #>"https://www.meetup.com/Data-Science-DC/events/283823601" ...
#> $ status : chr [1:130] "published" "published" "published" "published" ...
#> $ time : POSIXct[1:130], format: "2022-04-12 18:00:04" "2022-05-10 18:00:04" "2022-04-12 18:00:04" "2022-05-10 #>18:00:04" ...
#> $ duration : chr [1:130] "PT1H30M" "PT1H30M" "PT1H30M" "PT1H30M" ...
#> $ going : int [1:130] 34 53 34 53 49 65 70 65 83 83 ...
#> $ waiting : int [1:130] 0 0 0 0 0 0 3 0 0 0 ...
#> $ description : chr [1:130] "To discover an insightful meaning from the abundant COVID-19 literature, we focused on #>summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and require distributed #>execution. Ray is an open-sourc"| __truncated__ "To discover an insightful meaning from the abundant COVID-19 literature, #>we focused on summarizing topics that "| __truncated__ "Modern machine learning workloads are compute-intensive and #>require distributed execution. Ray is an open-sourc"| __truncated__ ...
#> $ venue_id : chr [1:130] "26906060" "26906060" "26906060" "26906060" ...
#> $ venue_lat : num [1:130] -8.52 -8.52 -8.52 -8.52 38.9 ...
#> $ venue_lon : num [1:130] 179 179 179 179 -77 ...
#> $ venue_name : chr [1:130] "Online event" "Online event" "Online event" "Online event" ...
#> $ venue_address: chr [1:130] "" "" "" "" ...
#> $ venue_city : chr [1:130] "" "" "" "" ...
#> $ venue_state : chr [1:130] "" "" "" "" ...
#> $ venue_zip : chr [1:130] "" "" "" "" ...
#> $ host.name : chr [1:130] "Tommy Jones" "Tommy Jones" "Tommy Jones" "Tommy Jones" ...
#> $ venue_country: chr [1:130] "" "" "" "" ...