En PHP es posible que tenga algo como esto:
// EDIT: only need to use urlencode() on user supplied variables
//$url = urlencode("http://xyz.com/api?apikey=foo&v1=bar&v2=baz");
$url = "http://xyz.com/api?apikey=foo&v1=bar&v2=baz";
$response = file_get_contents($url);
El $response
contendrá una cadena de cualquier xyz.com
emite cuando se accedió $url
(Es lo que se vería si ha visitado $url
directamente).
Su próximo trabajo sería analizar $response
en función de su estructura de datos (por ejemplo, XML, JSON, etc.) para que pueda ser utilizado por el resto de su código.
Hay varias bibliotecas de PHP para el análisis sintáctico XML o JSON. Personalmente, prefiero usar SimpleXMLElement
y json_decode()
que se incluye con PHP 5> = 5.2.0.
Dependiendo de la API, probablemente le enviará algún tipo de código de error/estructura de respuesta si no comprende la solicitud $url
que podría verificar después de analizar la respuesta.
Si $response
devuelve falso, entonces normalmente ha habido algún error comunicando con el $url
.
Descubrí que una forma intuitiva de pensar en estas solicitudes XHR
es que está pasando argumentos (GET
parámetros) a una función (API URL). Y la respuesta de la API URL es como la declaración de retorno de una función.
ACTUALIZACIÓN:
ejemplo API para Groupon según lo sugerido por OP en los comentarios:
$apikey = "client_id=abcd1234567890";
$division = "division_id=chicago";
$url = "http://api.groupon.com/v2/deals?" . implode("&", array($apikey, $division));
$response = file_get_contents($url);
$deals = json_decode($response, true);
foreach($deals['deals'] as $deal){
$format = 'Deal: <a href="%s">%s</a><br/>';
echo sprintf($format, $deal['dealURL'], $deal['announcementTitle']);
}
El código anterior podría imprimir una lista de todos los títulos Deal y direcciones URL para el área de Chicago. Si nos fijamos en las Sample JSON Response
secciones en la página de la API de Groupon, que le dará toda la estructura de datos que se asigna a la matriz asociativa $deals
.
Si el usuario proporciona alguno de los parámetros GET
de la API (por ejemplo, desde un formulario web), querrá hacer algo como $division = "division_id=" . urlencode($user_input);
.
Y se puede romper los diversos aprendizajes en diferentes pasos.En lugar de realizar la llamada api desde php (con dos fuentes de error) simplemente pruebe la llamada api en el navegador (si no sabe, GET es cuando las variables se anexan a la url, como en el ejemplo de dgilland) para que pueda juega con eso hasta que comiences a obtener una respuesta, y luego te mueves al php donde haces algo con él –
oO gracias gracias :) – hellomello
Intenté hacer eso con una API, pero el urlencode no funciona. Me quité eso y ahora estoy recibiendo cadenas y esas cosas, pero no hay imágenes ni nada más. solo texto del sitio (supongo). ¿alguna sugerencia? – hellomello