Visualizzazione risultati 1 fino 13 di 13

Discussione: Recupero dati visivi da API

  1. #1
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Arrow Recupero dati visivi da API

    Ciao a tutti,
    sto utilizzando un API per l'invio degli SMS. Una volta che apro l'url richiesto dalla API con le variabili richieste mi compare a video l'esito se positivo o negativo.
    Il mio intento è quello di salvarmi in una tabella tutti gli esiti di queste procedure, ma per l'appunto l'unica risposta ricevuta dall'API è una risposta a video.

    Utilizzando $.post() pensavo di poter recuperare il contenuto della pagina come risposta al successo della funzione per salvarlo in una variabile da passare al php, però facendo qualche test mi sono accorto che non funziona, è come se non ricevesse nessun esito ne negativo ne positivo.

    Come potrei fare secondo voi?

  2. #2
    mzanella è connesso ora Altervistiano Junior
    Data registrazione
    29-12-2015
    Messaggi
    706

    Predefinito

    Dipende dalle API in questione.
    Dalla tua descrizione sembra che non siano "pensate" per lavorare con AJAX, ma che siano proprio pagine web. Anziché usare JavaScript potresti provare con cURL di PHP o simili.

  3. #3
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Mmh interessante, grazie del suggerimento mazanella. Domani controllo se sul server è installata la libreria e faccio qualche test, ma leggendo le specifiche a intuito potrebbe tornarmi utile.

  4. #4
    darbula non è connesso Utente attivo
    Data registrazione
    24-04-2011
    Messaggi
    378

    Predefinito

    I dati possono essere inviati tramite GET o POST name=valore solo in questa forma nel php verrà valorizzato $_POST dove ricordo che inizialmente vale vuoto, altrimenti si devono leggere i dati grezzi (i dati potrebbero essere percentencoding) di POST php://input http://php.net/manual/en/wrappers.php.php ma si consideri che una richiesta Post valida è solo come nome=valore (i dati devono anch'essi essere percentencodati proprio come da specifica rfc)..
    $.post o meglio jquery ajax in alcune circostanze provvede a percentencoding i dati in modo implicito.. ajax o json sono impostati in utf-8 secondo le loro specifiche.
    ad un invio di un sms o meglio a qualsiasi url richiesta riceverai una risposta , quindi perché non fai tutto in php? (se le api le utilizzi in php)
    Ultima modifica di darbula : 11-03-2017 alle ore 19.42.11

  5. #5
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Ciao darbula, il problema è che non so a quale pagina mi rimandano la risposta. Me la mandano alla stessa pagina da cui parte la mia richiesta?
    Credo che le risposte me le dovrebbero indicare a una pagina diversa da quella con cui io mando la richiesta, poiché in php non posso uscire e rientrare nella stessa pagina (credo). Tra l'altro una cosa che non ho specificato nel primo post è che effettuo un ciclo di invii, non è un solo sms ma sono tanti, quindi non voglio uscire dalla pagina al primo invio.
    Ho provato a contattare la loro assistenza, ma non ho ancora ricevuto rispsota.
    mazanella ho installato le librerie cURL e in effetti funziona, riesco a prelevare il contenuto a video e inserirlo in una variabile, almeno in questo modo posso avere a video il totale degli sms mancanti.

    Ora mi manca da completare la parte più importante, ma sinceramente non vorrei mischiare troppo php / js cosa che per come è strutturato ora lo script sta succedendo

  6. #6
    darbula non è connesso Utente attivo
    Data registrazione
    24-04-2011
    Messaggi
    378

    Predefinito

    aspetta le api sono una cosa differente dal formato (credo che hai creato una pagina html con dei form) indica le api in questione.. Cmq se richiedo sito a la visualizzazione (risposta) sempre di a. Da altervista utilizzando l'accesso da remoto (file_get_contents() e similari) con i protocolli https:// causa problemi superabili solo con curl
    Ultima modifica di darbula : 13-03-2017 alle ore 18.13.03

  7. #7
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    No, non c'è nessun form. Dal sito clicco un pulsante e avvio uno script che mi prende i dati dal DB, con un ciclo quindi per ogni record accedo all'api inviando attraverso il loro url un sms. Poi non so come salvarmi il risultato in un'apposita tabella. Tra l'altro poi, proprio per il fatto di essere all'interno di un while(), non posso permettermi di uscire dalla pagina corrente.
    CURL in questo caso non mi è utile, ho controllato e ovviamente non riceve risposta dal link per l'invio dell'sms perché ovviamente questo si valorizza solo se viene aperto. Se continua così cambierò api mi sa

  8. #8
    darbula non è connesso Utente attivo
    Data registrazione
    24-04-2011
    Messaggi
    378

    Predefinito

    senza codice sorgente non possiamo aiutarti.. assicurati che curl funzioni fai un test da https://www.google.it
    Indica la tua versione di php e il nome delle API, potrebbe essere necessario disabilitare qualche option in curl come ad esempio la verifica del dominio e del certificato per https.
    Anche se il link funzionasse con il solo javascript potresti emulare questo comportamento in php. (se hai il sorgente sai come comportarti).
    Quindi se ho capito bene dal loro sito premi un pulsante che ti consente di accedere al tuo db che non si trova sul sito stesso.
    Ultima modifica di darbula : 13-03-2017 alle ore 21.35.25

  9. #9
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    No, sul sito che sto costruendo io inserirò un pulsante o qualsiasi altro elemento per far avviare lo script (potrei farlo anche con crontab ma mi pare sia a pagamento su AV).
    Appena cliccehrò, il MIO script entrerà nel MIO db, preleverà i dati necessari degli utenti (es. telefono), controllerà a chi in quel giorno deve essere inviato il messaggio e ciclerà tutti i rusltati aprendo per ognuno di essi il link dell'api.
    Comunque finalmente stasera mi hanno risposto e mi hanno fornito le credenziali per entrare in un'area privata dove inserire un MIO url di destinazione e mi hanno mandato il loro elenco di variabili che mi passeranno, incredibile non le abbiano messe nella guida... forse è un'opzione più recente che hanno inserito da poco mah.

    Però se lo voglio costruire in php come faccio a effettuare il ciclo senza interrompermi e uscire dalla pagina?

  10. #10
    darbula non è connesso Utente attivo
    Data registrazione
    24-04-2011
    Messaggi
    378

    Predefinito

    Dimmi in privato come si chiama il tuo fornitore, vedrò se già non esiste una possibilità per inviare degli sms multipli (a più destinatari).

  11. #11
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    La possibilità esiste, ma essendo i miei sms personalizzati non mi posso affidare al loro servizio per questo.
    Quello che mi serve fare adesso è riuscire a ciclare i risultati della mia query per inviare le stringhe http senza fermare il ciclo

  12. #12
    darbula non è connesso Utente attivo
    Data registrazione
    24-04-2011
    Messaggi
    378

    Predefinito

    il risultato del ciclo lo metti dentro un array poi usi multi curl.. disabiliti la verifica del certificato e del dominio per https, ed invii l'array rimane fino alle fine dello script. Però non ho la più pallida idea di quante richieste simultanee potrai fare
    oppure se cmq devi salvare l'esito di ogni cliente, prova eseguendo curl dentro il ciclo.
    Ultima modifica di darbula : 16-03-2017 alle ore 02.02.27

  13. #13
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Avevo già provato con curl, ma sembra non dare risposta, anche se non avevo controllato la verifica dei certificati come detto da te, quindi farò un altro tentativo.
    Ho anche trovato altri suggerimenti in rete, come file(), file_get_contents() (anche se questo mi pare più per lettura di file interni), xmlhttprequest() via ajax.
    Li dovrò provare tutti, ma ti sembra che uno di questi potrebbe aiutarmi a inviare i dati senza aprire le rispettive pagine nel browser?

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •