Ciro Marciano Posted May 31, 2021 Share Posted May 31, 2021 ciao a tutti, questo è il mio primo post. Ho bisogno di un aiuto nella fase di autenticazione alle API di PS. (Al momento sto utilizzando Postman prima di inserire nel mio codice di applicazione le chiamate). Se utilizzo una chiamata tipo questa: https://ncssrl.com/pshop/api/countries/?ws_key=myapikey vedo correttamente le anagrafiche (solo i codici) nel JSON di ritorno. Non riesco però ad aggiungere altri parametri alla chiamata, ad esempio, se provo a richiedere un blank schema per fare un inserimento in questa maniera: https://ncssrl.com/pshop/api/countries/?ws_key=myapikey/?schema=blank ottengo 401 Unauthorized come mai? Link to comment Share on other sites More sharing options...
ziobudda Posted May 31, 2021 Share Posted May 31, 2021 Ciao, in teoria "/?schema=blank" dovrebbe essere "&schema=blank" Ma vado a teoria. M. Link to comment Share on other sites More sharing options...
Luigi Massa Posted June 7, 2021 Share Posted June 7, 2021 On 5/31/2021 at 5:10 PM, Ciro Marciano said: ciao a tutti, questo è il mio primo post. Ho bisogno di un aiuto nella fase di autenticazione alle API di PS. (Al momento sto utilizzando Postman prima di inserire nel mio codice di applicazione le chiamate). Se utilizzo una chiamata tipo questa: https://ncssrl.com/pshop/api/countries/?ws_key=myapikey vedo correttamente le anagrafiche (solo i codici) nel JSON di ritorno. Non riesco però ad aggiungere altri parametri alla chiamata, ad esempio, se provo a richiedere un blank schema per fare un inserimento in questa maniera: https://ncssrl.com/pshop/api/countries/?ws_key=myapikey/?schema=blank ottengo 401 Unauthorized come mai? Buondì lo so i ws di prestashop sono un po' ostici all'inizio Innanzi tutto ecco la documentazione ufficiale: https://devdocs.prestashop.com/1.7/webservice/getting-started/ La chiave la devi creare nel BO e devi attivare le entity su cui vuoi operare, ma credo tu lo sappia Ora che hai la chiave, per le chiamate da server la chiave la devi codificare con un encode base 64 (cerca su google per farlo con php) In header della richiesta ti basta aggiungere: Authorization: Bearer <chiave in 64> Per il JSON ti conviene inserire l'opzione nella header: Output-Format: JSON Ho allegato uno screenshot su Postman Infine.... che tu abbia apache o nginx avrai un problema Per apache l'.htaccess blocca l'header Authorization. Leggi questo stack overflow: https://stackoverflow.com/questions/26475885/authorization-header-missing-in-php-post-request Infine, c'è un noioso bug di prepstashop: ogni volta che entri nella configurazione dei ws e salvi, PS rigenera htaccess e cancella la modifica appena descritta Per nginx non son aiutarti, non ci ho messo mano. Spero ti possano servire queste informazioni. Nel caso contattami via mail. Trovai dal mio sito bwlab.it saluti Link to comment Share on other sites More sharing options...
Ciro Marciano Posted June 8, 2021 Author Share Posted June 8, 2021 (edited) infatti non riesco a passare l'api key nell'header e sono costretto a passarlo nell'url. Sono riuscito ad avere il blank schema, adesso lo modifico in plain text e lo reinvio in POST, ma con quale url? https://ncssrl.com/pshop/api/countries/?ws_key=myapikey sempre lo stesso? basta modificare l'xml o va aggiunto altro, ad esempio questo è il blank ricevuto <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <country> <id></id> <id_zone></id_zone> <id_currency></id_currency> <call_prefix></call_prefix> <iso_code></iso_code> <active></active> <contains_states></contains_states> <need_identification_number></need_identification_number> <need_zip_code></need_zip_code> <zip_code_format></zip_code_format> <display_tax_label></display_tax_label> <name><language id="1"></language></name> </country> </prestashop> basta fare cosi? <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <country> <id>9999</id> <id_zone>1</id_zone> <id_currency>0</id_currency> <call_prefix>99</call_prefix> <iso_code>ZZ</iso_code> <active>0</active> <contains_states>0</contains_states> <need_identification_number>0</need_identification_number> <need_zip_code>1</need_zip_code> <zip_code_format>NNNNN</zip_code_format> <display_tax_label>1</display_tax_label> <name><language id="1"></language></name> </country> </prestashop> Edited June 8, 2021 by Ciro Marciano (see edit history) Link to comment Share on other sites More sharing options...
Ciro Marciano Posted June 11, 2021 Author Share Posted June 11, 2021 sto provando ad inviare un xml in scrittura ma in risposta ricevo la lista dei record della tabella (come se facessi un retrieve resources) ed il record non viene inserito. non ho alcun errore dal servizio, dove sbaglio? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now