Je suis en train de faire une requête à partir d'un API de "idealista" (link).Je ne peux pas faire de demande de GET en R à idealista API
Il nécessite une authentification, donc ce que je faisais était la suivante:
if(!require("jsonlite")){install.packages("jsonlite")}
if(!require("httr")){install.packages("httr")}
consumer_key <- "my_key"
consumer_secret <- "my_secret"
#Use basic auth
secret <- jsonlite::base64_enc(paste(consumer_key, consumer_secret, sep = ":"))
req <- httr::POST("https://api.idealista.com/oauth/token",
httr::add_headers(
"Authorization" = paste("Basic", gsub("\n", "", secret)),
"Content-Type" = "application/x-www-form-urlencoded;charset=UTF-8"
),
body = "grant_type=client_credentials"
)
#Extract the access token
token <- paste("Bearer", jsonlite::base64_enc(httr::content(req)$access_token))
Alors, d'abord: je ne sais pas si le jeton doit être base64 (je pense que oui). Et je suivais pour faire une demande:
url<-"https://api.idealista.com/3.5/es/search?locale=es&maxItems=20&numPage=1&operation=sale&order=publicationDate&propertyType=garages&apikey=my_key&t=1&language=es&bankOffer=true" #an example of url (needs apikey)
req <- httr::GET(url, httr::add_headers("Authorization" = token))
Et la réponse est:
Response [https://api.idealista.com/3.5/es/search?locale=es&maxItems=20&numPage=1&operation=sale&order=publicationDate&propertyType=garages&apikey=80gzxznozajnl3tf30ite86k1p24e4yb&t=1&language=es&bankOffer=true]
Date: 2017-10-10 15:25
Status: 400
Content-Type: text/html
Size: 4.4 kB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/T...
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es_ES" lang="es_ES">
<head>
<title>idealista.com : pisos madrid, pisos barcelona, pisos v...
<meta http-equiv="content-Type" content="text/html; charset=I...
<meta http-equiv="Expires" content="0"/>
<meta name="Pragma" content="no-cache"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache, mustreval...
...
qui n'a pas de sens. Pouvez-vous me dire ce que je fais mal? Le code d'état que je reçois est "400", je ne sais pas ce que je dois faire.
Merci d'avance.
Cela semble entièrement spécifique à l'API idealista.com. Vous devriez probablement les contacter pour le soutien. Ou à tout le moins fournir un lien la partie pertinente de la documentation de leur API. Essayez-vous vraiment d'ajouter deux en-têtes d'autorisation? – MrFlick