Page 1 sur 1

[OK] HTTPrequest API Deepl

Publié : mar. 18/avr./2023 14:41
par Ar-S
Salut,

Je me suis inscrit sur deepl car on peut utiliser l'API de traduction dans une version (limité) gratuite.
Je voudrais me faire un petit traducteur simple de bureau en PB.
J'obtiens un status : 0 :?

Voilà la syntaxe de l'API :

Code : Tout sélectionner

POST /v2/translate HTTP/2
Host: api-free.deepl.com
Authorization: DeepL-Auth-Key MA CLE
User-Agent: YourApp/1.2.3
Content-Length: 37
Content-Type: application/x-www-form-urlencoded

text=Hello%2C%20world!&target_lang=DE
Sachant que j'ai essayé avec l'host : https://api-free.deepl.com/v2/translate et l'host https://api-free.deepl.com
Sachant que j'ai essayé avec la clé : "DeepL-Auth-Key "+API$ et la clé API$

Code : Tout sélectionner

Global API$ = "MA CLE"
; En-têtes
NewMap Header$()
Header$("Authorization") = API$
;Header$("Authorization") = "DeepL-Auth-Key "+API$ 
Header$("Content-Type") = "application/x-www-form-urlencoded"
Header$("User-Agent") = "Firefox 54.0"

; A Traduire
DataZ$ = "text="+URLEncoder("Hello world!")+"&target_lang=FR"

; Envoi de la requête
HttpRequest = HTTPRequest(#PB_HTTP_Post, "https://api-free.deepl.com/v2/translate", DataZ$, #PB_HTTP_Asynchronous, Header$())

; Vérification de la requête
If HttpRequest
  Debug "Statut: " + HTTPInfo(HttpRequest, #PB_HTTP_StatusCode)
  Debug "Réponse: " + HTTPInfo(HttpRequest, #PB_HTTP_Response)

  FinishHTTP(HttpRequest)
Else
  Debug "La requête a échoué"
EndIf
[/code]

Re: HTTPrequest API Deepl

Publié : mer. 19/avr./2023 7:22
par vurvur

Code : Tout sélectionner


API$ = "MA CLE"
Text$ = "Hola!"
LangFrom$ = "ES"
LangTo$ = "EN"

Post$ = "auth_key=" + API$ + "&text=" + Text$ + "&source_lang=" + langFrom$ + "&target_lang=" + langTo$

NewMap ZeroHeader$()

ENDPOINT$ = "https://api-free.deepl.com/v2/translate"

HttpRequest = HTTPRequest(#PB_HTTP_Post, ENDPOINT$, Post$, 0, ZeroHeader$())

Debug "Statut: " + HTTPInfo(HttpRequest, #PB_HTTP_StatusCode)
Debug "Réponse: " + HTTPInfo(HttpRequest, #PB_HTTP_Response)

Re: HTTPrequest API Deepl

Publié : mer. 19/avr./2023 16:48
par Ar-S
Ton code renvoie du erreur 403.
Je pense que s'ils mettent
POST /v2/translate HTTP/2
Host: api-free.deepl.com
Authorization: DeepL-Auth-Key MA CLE
User-Agent: YourApp/1.2.3
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
text=Hello%2C%20world!&target_lang=DE
Comme exemple c'est que le header est nécessaire.

Re: HTTPrequest API Deepl

Publié : mer. 19/avr./2023 17:27
par vurvur
Ar-S a écrit : mer. 19/avr./2023 16:48 Ton code renvoie du erreur 403.
Non ça fonctionne nickel sans headers, je viens encore de tester (il faut juste mettre une bonne clé API évidemment)

Ca me donne ceci en retour:

Code : Tout sélectionner

Statut: 200
Réponse: {"translations":[{"detected_source_language":"ES","text":"Hello!"}]}

Re: HTTPrequest API Deepl

Publié : mer. 19/avr./2023 21:06
par Ar-S
Oh ba oui effectivement. Je ne sais pas pourquoi ça a queuté à mon 1er test.
Merci c'est top.