Estoy empezando a mojarme los pies en las aguas de la API y estoy tratando de seguir la sección "Enviar una solicitud simple" en este enlace. Al ejecutar

github_api <- function(path) {
  url <- modify_url("https://api.github.com", path = path)
  GET(url)
}

resp <- github_api("/repos/hadley/httr")

Me sale el siguiente mensaje de error:

Error en curl :: curl_fetch_memory (url, handle = handle): schannel: next InitializeSecurityContext falló: SEC_E_UNTRUSTED_ROOT (0x80090325) - La cadena de certificados fue emitida por una autoridad que no es de confianza.

Recibo mensajes de error similares para la mayoría de las llamadas a la API que intento realizar en mi máquina, aunque la llamada

GET("http://api.open-notify.org/astros.json")

Tomado de este enlace devuelve datos sin problemas. Al buscar en Google el mensaje de error, se obtienen muchas publicaciones no relacionadas específicamente con R y tengo problemas para determinar qué pasos de solución de problemas puedo tomar.

Actualizar

He probado la llamada en otra máquina con éxito, por lo que hay algún impedimento de configuración / configuración / cortafuegos en mi máquina principal que me impide realizar algunas, pero no todas, las llamadas a la API. Esto puede estar relacionado con este problema. ¿Hay alguna forma de determinar la causa raíz aquí y aplicar una solución?

0
Rookatu 23 oct. 2020 a las 18:29

1 respuesta

La mejor respuesta

Pude resolver esto usando un proxy de reenvío que permite que mi máquina llegue a sitios fuera de mi firewall corporativo de la siguiente manera (he ocultado la URL y el puerto por razones obvias):

proxy <- use_proxy( url = "http://myproxy"
                   ,port = 9999
                   ,auth = "basic")
github_api <- function(path) {
  url <- modify_url("https://api.github.com", path = path)
  GET(url, proxy)
}

resp <- github_api("/repos/hadley/httr")

Es de esperar que exista un proxy de este tipo para cualquier otra persona que se enfrente a este problema.

0
Rookatu 6 nov. 2020 a las 14:18