OPEN API - Problem
Hallo an alle,
bin in der API-Welt ein totaler Neuling. Ich habe mich bei OPEN-API eingeschrieben.
Ich möchte einen API-Kode in Ninox erstellen, der mir über die MwSt-Nummer die Firmen-Daten über API von OPEN-API importiert.
do as server
let url := "https://imprese.openapi.it/advance/" + 'Partita Iva';
let APIKey := "Bearer API-NUMBER";
let response := http("GET", url, {
Authorization: APIKey,
'content-type': "application/json"
}, {
fields: {
topo: data.toponimo
società: data.denominazione
}
end
Copy
Laut diesen Kodex oben, möchte ich dass z.B. die Ninox-Felder "Topo" und "Società" die werte die ich als Resultat von hier aus bekomme, "Toponimo" und "Denominazione", ergänzt werden. Allerdings ist dieses Resultat nur ein Beispiel von dem was ich bekommen sollte. Ich bekomme natürlich kein Resultat und nicht ma eine Fehlermeldung.
{
"data": {
"cf": "12485671007",
"denominazione": "OPENAPI S.R.L.",
"piva": "12485671007",
"toponimo": "VIALE",
"via": "F TOMMASO MARINETTI",
"civico": "221",
"indirizzo": "VIALE F TOMMASO MARINETTI 221",
"comune": "ROMA",
"frazione": null,
"provincia": "RM",
"stato_attivita": "ATTIVA",
"timestamp": 1622452306,
"timestamp_creation": 1622452306,
"timestamp_last_update": 1622452306,
"dettaglio": {
"rea": "1378273",
"cciaa": "RM",
"pec": "openapi@legalmail.it",
"codice_natura_giuridica": "SR",
"descrizione_ateco": "Produzione di software non connesso all'edizione",
"codice_ateco": "6201",
"data_inizio_attivita": "2013-10-20",
"bilanci": {
"2017": {
"data_chiusura_bilancio": "2017-12-31",
"fatturato": 1120176,
"utile": 2928
},
"2018": {
"data_chiusura_bilancio": "2018-12-31",
"fatturato": 1325358,
"utile": 826
},
"2019": {
"data_chiusura_bilancio": "2019-12-31",
"fatturato": 1799587,
"utile": 11309,
"dipendenti": 14,
"capitale_sociale": 10000
}
},
"gruppo_iva": {
"partecipazione": false,
"piva_capogruppo": false,
"anagrafica_ok": true
},
"cessata": false,
"soci": [
{
"denominazione": "OPEN HOLDING S.R.L.",
"nome": null,
"cognome": null,
"cf_socio": "16935371001",
"quota": 100
}
]
},
"cap": "00143",
"codice_destinatario": "MJ1OYNU",
"id": "60b4f9c914e27c27d12a9d67",
"gps": {
"coordinates": [
12.47843,
41.8071
]
},
"data_iscrizione": "2013-07-19"
},
"success": true,
"message": "",
"error": null
} (empty) (empty)
So habe ich den Kodex geändert und folgendes geschrieben um zu verstehen ob dieser überhaupt funktioniert:
let myURL := "https://imprese.openapi.it/advance/" + 'Partita Iva';
let APIKey := "Bearer 28049ec81f6d96a3aed43f3181047a4e";
let response := http("GET", myURL, {
Authorization: APIKey,
'content-type': "application/json"
});
if response.error then
alert("Error: " + text(response))
else
alert("OK: " + text(response))
end
Hier bekomme ich dien Fehlermeldung: " Request has failed: error - "
Ich weiss dass der Kodex falsch ist, kann mir da bitte jemand weiterhelfen und mir sagen wie ich den schrieben sollte?
Hier der Link zur API-Seite:
Danke
12 Antworten
-
Also, mit folgendem Script bekomme ich schonmal eine Verbindung zur API... Allerdings stimmt bei mir der Token natürlich nicht ... Lege dir am besten ein mehrzeiliges Textfeld "API_Response" an, das befüllst Du dann mit deiner Rückmeldung:
let auth := {
Authorization: "Bearer 28049ec81f6d96a3aed43f3181047a4e",
'Content-Type': "application/json"
};
let myURL := "https://imprese.openapi.it/advance/" + 12485671007;
let response := do as server
http("GET", myURL, auth)
end;
API_Response := text(response) -
So.... du brauchst neben deiner Basic Authentication (email:Apikey) einen OAuth Token.
Diesen Token kannst Du entweder über einen API call aus der NINOX generieren (dann über den oauth Endpunkt https://test.oauth.openapi.it/token mit "Basic email:Apikey") - oder fürs Erste auf der Openapi Seite unter WEB SERVICES / OAuth / My Token List. Die Token gelten für 1 Jahr, da kann man auch auf der Openapi Seite einen generieren... Manche Token (Microsoft zb) halten nur ca 30 Min., da macht es Sinn den über einen API Call aus der Ninox zu holen...
Es gibt zum experimentieren die Sandbox ... diese hat eigene Token / Scopes und Endpunkte.
Dort generierst Du dir einen Sandbox Token und wählst erstmal alle Scopes (Berechtigungen) aus...Dann läuft folgendes Script in der Ninox auf einem Button:
let auth := {
Authorization: "Bearer 6464484f2cb0ce504b15c912",
'Content-Type': "application/json"
};
let myURL := "https://test.imprese.openapi.it/advance/" + 12485671007;
let response := do as server
http("GET", myURL, auth, {})
end;
API_Response := text(response)An die Antwortdaten der API kommst Du dann über die "Punkt-Navigation" (jede geschwungene Klammer ist eine Ebene)... damit kannst Du dann deine Ninoxfelder befüllen. Z.B.:
Firmenname := text(response.result.data.denominazione)
Ich hoffe Du kommst damit weiter... Beste Grüße
Tobias
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 12Antworten
- 151Ansichten
-
3
Folge bereits