ropensci/rcrossref

simple functions not working today. CR API change related?

rossmounce opened this issue ยท 12 comments

I haven't played with rcrossref for a while but it just doesn't seem to be working for me. Perhaps related to #216 ?
Or the major upgrade to R 4.1.0?

> cr_members(query = 'ecology', limit = 5)
Error in cr_GET(endpoint = path, args, FALSE, parse = TRUE, ...) : 
  res$response_headers$`content-type` == "application/json;charset=UTF-8" is not TRUE
> cr_prefixes(prefixes = c('10.1016','10.1371','10.1023','10.4176','10.1093'))
Error in cr_GET(path, args, todf = FALSE, ...) : 
  res$response_headers$`content-type` == "application/json;charset=UTF-8" is not TRUE
> 
Session Info
R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 
 
locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rcrossref_1.1.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.7        compiler_4.1.0    pillar_1.6.1      later_1.2.0      
 [5] plyr_1.8.6        tools_4.1.0       digest_0.6.27     jsonlite_1.7.2   
 [9] lifecycle_1.0.0   tibble_3.1.2      pkgconfig_2.0.3   rlang_0.4.11     
[13] shiny_1.6.0       crul_1.1.0        curl_4.3.2        fastmap_1.1.0    
[17] xml2_1.3.2        dplyr_1.0.7       stringr_1.4.0     generics_0.1.0   
[21] vctrs_0.3.8       htmlwidgets_1.5.3 triebeard_0.3.0   DT_0.18          
[25] tidyselect_1.1.1  glue_1.4.2        httpcode_0.3.0    R6_2.5.0         
[29] fansi_0.5.0       purrr_0.3.4       magrittr_2.0.1    urltools_1.7.3   
[33] promises_1.2.0.1  ellipsis_0.3.2    htmltools_0.5.1.1 mime_0.11        
[37] xtable_1.8-4      httpuv_1.6.1      utf8_1.2.1        stringi_1.6.2    
[41] miniUI_0.1.1.1    crayon_1.4.1 

may have been a temporary issue. is it still happening now? i can't replicate it

it is related to #216 and changes have become effective today for people not using the Polite or Metadata Plus pool. @rossmounce add your email address and then your request should be handled by the polite pool.

https://github.com/ropensci/rcrossref#register-for-the-polite-pool

@njahn82 thank you! I will register for the polite pool.

...and yes that fixed the problem for me. Thanks!

The polite pool will transition to the new API version on August 3 (https://www.crossref.org/blog/behind-the-scenes-improvements-to-the-rest-api/) so the issue might re-occur then...

It appears that currently in the API response, headers$content-type is application/json;charset=UTF-8 when using the polite pool, but changed to application/json when using the public pool

This is checked for in R/zzz.R in line 45 stopifnot(res$response_headers$content-type == "application/json;charset=UTF-8")

{rcrossref} was updated to reflect Crossref's REST API updates for the public and polite pool #216 . Please install the dev version:

remotes::install_github("ropensci/rcrossref")

Hello, I am still having this issue although I registered to the polite pool (email at the .Renviron) and also installed the dev version as indicated. Any help/advice is appreciated.
Thanks

Error:
Error in cr_GET(endpoint = path, args, todf = FALSE, ...) :
res$response_headers$content-type == "application/json;charset=UTF-8" is not TRUE

sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 10 (buster)

Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.5.so

locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=es_CL.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=es_CL.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=es_CL.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=es_CL.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] rcrossref_1.1.0 quanteda_3.1.0

loaded via a namespace (and not attached):
[1] tidyselect_1.1.1 purrr_0.3.4 lattice_0.20-44 colorspace_2.0-2 vctrs_0.3.8 generics_0.1.0 miniUI_0.1.1.1
[8] htmltools_0.5.2 viridisLite_0.4.0 utf8_1.2.2 plotly_4.9.4.1 rlang_0.4.11 pillar_1.6.2 later_1.3.0
[15] httpcode_0.3.0 glue_1.4.2 DBI_1.1.1 plyr_1.8.6 lifecycle_1.0.0 stringr_1.4.0 munsell_0.5.0
[22] gtable_0.3.0 htmlwidgets_1.5.3 fastmap_1.1.0 httpuv_1.6.2 curl_4.3.2 fansi_0.5.0 triebeard_0.3.0
[29] urltools_1.7.3 Rcpp_1.0.7 xtable_1.8-4 scales_1.1.1 promises_1.2.0.1 DT_0.18 RcppParallel_5.1.4
[36] jsonlite_1.7.2 mime_0.11 fastmatch_1.1-3 stopwords_2.2 ggplot2_3.3.5 digest_0.6.27 stringi_1.7.4
[43] dplyr_1.0.7 shiny_1.6.0 grid_4.1.1 cli_3.0.1 tools_4.1.1 magrittr_2.0.1 lazyeval_0.2.2
[50] tibble_3.1.4 crul_1.1.0 crayon_1.4.1 tidyr_1.1.3 pkgconfig_2.0.3 ellipsis_0.3.2 Matrix_1.3-4
[57] xml2_1.3.2 data.table_1.14.0 assertthat_0.2.1 httr_1.4.2 rstudioapi_0.13 R6_2.5.1 compiler_4.1.1

Hi @MrBungle-Codes

please re-install rcrossref using the dev version.

remotes::install_github("ropensci/rcrossref")

thank you very much @njahn82 !!... that solves the issue for me.

Do we still have to install the dev version from GitHub as a workaround?

Yes, please install dev version. Still not updated the version on CRAN

To note this issue is still occurring and it was solved by installing the dev version (I already had email in Renviron). So presumably still not updated on CRAN

The updated version is now available on CRAN, thanks for you patience!