La situazione è questa.
Nel mio sito www.miosito.com ho una pagina dove andrò a costruire una interfaccia.
Questa interfaccia è costituita da una serie di bottoni e una parte della pagina dove a seconda della funzione richiesta mostrerò i dati che riceverò.
Questi dati mi arrivano tramite metodo POST da un server https://api.server.com/ contenente le API.
www.miosito.com è in PHP (server linux con apache) quindi dovrò usare il PHP per le "form" e per ricevere le variabili di risposta dal api.server.com.
Per avere l'accesso a api.server.com i proprietari della api hanno impostato "a casa loro" alcune cose:
1) io posso comunicare con queste api solo da un determinato ip, penso a causa del protocollo https, quindi ho fornito loro l'ip di www.miosito.com visto che le richieste partiranno da qua.
2) Le API in api.server.com risponderanno con le variabili inviate con metodo post su un file return.php, che quindi io ho creato un file return.php dentro www.miosito.com/return.php.
A questo punto io mi sono bloccato perchè è cosa nuova per me!
Comunicare con questo server è un casino.
1) Non posso fare la richiesta con un form POST e con l'action che punta al sito delle api perchè in quel modo la richiesta verrebbe fatta dal browser e api.server.com vedrebbe arrivare una richiesta non dall'IP di www.miosito.com ma dall'IP dell'utente.
2) Ho provato quindi a usare una cosa del tipo:
Azione.php
Codice PHP:
<form id="form1" name="form1" method="post" action="http://www.miosito.com/processore.php">
<input type="text" name="username" id="text" value="user/>
<input type="password" name="password" id="text" value="pass"/>
<input type="text" name="codice" id="text" value="codice"/>
<input type="submit" name="button" id="button" value="Submit" />
</form>
Processore.php
Codice PHP:
<?php
$user = $_POST[username];
$pass = $_POST[password];
$code = $_POST[codice];
echo 'Questi sono i dati in arrivo da azione.php user= '.$user.'
'.'pass= '.$pass.'
'.'code= '.$code;
$post_fields= 'username='.$user.'&password='.$pass.'&codice='.$code;
$ch = curl_init('https://api.server.com/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_exec($ch);
?>
In questo modo ho una pagina azione.php che raccoglie le variabili (i form per i bottoni dell'interfaccia ad esempio) e una pagina processore.php che CREA l'URL di richiesta al server con le api e IN TEORIA fa questa richiesta.
Purtroppo non so usare ne il curl ne il fopen come mi è stato consigliato in altri siti. Ho copiato da un esempio e la sintassi spero sia corretta...purtroppo non ho riscontri del funzionamento!
Le cose che volevo sapere se potevate aiutarmi sono 2:
1) La pagina processore.php secondo voi funziona?
E' giusto fare la richiesta in questo modo per comunicare con il server delle api e far arrivare la richiesta dall'ip di www.miosito.com e non dall'ip dell'utente del browser?
2) Come faccio a ricevere la risposta che mi arriva da api.server.com?
Io so che mi spedisce la risposta su return.php (penso come se internamente avessero una form con l'action impostato su return.php dentro il mio sito) in questo formato https://api.server.com/?var1=aaa&var2=bbb...ecc ecc....
Come devo fare questo questo return.php?
E come riesco a "unire il tutto"?
Alla fine fine quello che devo fare é
- cliccare sul bottone (form) dentro www.miosito.com che manda la richiesta a https://api.server.com
- far comparire nella stessa pagina (o in un iframe) coi bottoni i dati ricevuti dal return.php che ha letto le varibili che api.server.com gli ha spedito.
Mi manca proprio il concetto di base di io che faccio la chiamata a una url del tipo https://api.server.com/?user=io&pass...domandaalleAPI e loro spediscono la risposta sul mio return.php che all'istante mi legge la loro risposta che arriva con delle variabili in POST e le mostro dentro la pagina di www.miosito.com
VI RINGRAZIO DI CUORE ANTICIPATAMENTE!!!!!!!!