<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Exercicis_JSONP</id>
	<title>Exercicis JSONP - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Exercicis_JSONP"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Exercicis_JSONP&amp;action=history"/>
	<updated>2026-08-30T09:21:55Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Exercicis_JSONP&amp;diff=257765&amp;oldid=prev</id>
		<title>Joan: /* Entrega */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Exercicis_JSONP&amp;diff=257765&amp;oldid=prev"/>
		<updated>2018-09-20T15:27:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Entrega&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció=&lt;br /&gt;
A classe hem vist la tecnologia JSONP. Gràcies a aqusta tecnologia hem vist conceptes com la comunicació remota amb altres dominis, open data, Internet of Things,... Les dades no tenen fronteres... i JSON és un bon estàndar per inter-operar entre les dades.&lt;br /&gt;
&lt;br /&gt;
=Referències=&lt;br /&gt;
*[[JSONP:_JSON_with_Padding]]&lt;br /&gt;
&lt;br /&gt;
=Exercicis=&lt;br /&gt;
==Exercici 1: conversió euro-dòlar==&lt;br /&gt;
*[[JSONP:_JSON_with_Padding#Exercici:_conversi.C3.B3_euro-d.C3.B2lar]]&lt;br /&gt;
==Exercici 2: Llista dels parcs de l'Àrea Metrolpolitana==&lt;br /&gt;
*[[JSONP:_JSON_with_Padding#Exercici:_open_data._Dades_obertes_de_l.27.C3.80rea_Metropolitana_de_Barcelona]]&lt;br /&gt;
==Exercici 3: Temperatura de Barcelona (sensor amb Arduino) (curs 16-17: no s'ha de fer)==&lt;br /&gt;
*[[JSONP:_JSON_with_Padding#Servei_Web_Temperatura_de_Barcelona_.28projecte_d.27electr.C3.B2nica.29]]&lt;br /&gt;
En aquest exercici hauràs d'integrar en una pàgina/projecte que hagis fet la temperatura de Barcelona, i hauràs d'actualitzar cada minut la temperatura mitjançant una crida asíncrona que refresqui el contingut de la capa.&lt;br /&gt;
&lt;br /&gt;
Possible solució:&lt;br /&gt;
*[[Fitxer:Test temperatura.zip]]&lt;br /&gt;
==Exercici 4: API de openweather==&lt;br /&gt;
'''NOTA''': preferentment, l'alumne utiltizarà alguna de les altres API disponibles. Pots utilitzar la ''API Key'' del professor, sempre i quan en facis un bon ús. En cas contrari, pots aconseguir de forma fàcil la teva API key.&lt;br /&gt;
&lt;br /&gt;
D'altra banda, no tots els accessos a recursos JSON vol dir que s'hagin de fer amb funcions de callback. En aquesta API, per exemple, podem accedir a la informació de la temperatura sense cap impediment (amb els límits que imposa la mateixa API).&lt;br /&gt;
*[[API_de_openweathermap.org,_thingful.net_(Internet_of_Things)]]&lt;br /&gt;
Podem accedir a la API amb aquesta url:&lt;br /&gt;
*http://api.openweathermap.org/data/2.5/weather?q=Barcelona&amp;amp;units=metric&amp;amp;lang=ca&amp;amp;APPID=e2aec1bc0914a482546efb1b491a6f2a&lt;br /&gt;
&lt;br /&gt;
Aquesta informació la podem ficar dins d'una funció de callback:&lt;br /&gt;
*http://api.openweathermap.org/data/2.5/weather?q=Barcelona&amp;amp;units=metric&amp;amp;lang=ca&amp;amp;APPID=e2aec1bc0914a482546efb1b491a6f2a&amp;amp;callback=foo&lt;br /&gt;
&lt;br /&gt;
També podem accedir a la informació en mode comanda:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -i 'http://api.openweathermap.org/data/2.5/weather?q=Barcelona&amp;amp;units=metric&amp;amp;lang=ca&amp;amp;APPID={e2aec1bc0914a482546efb1b491a6f2a}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
El resultat:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;coord&amp;quot;:{&amp;quot;lon&amp;quot;:2.16,&amp;quot;lat&amp;quot;:41.39},&amp;quot;weather&amp;quot;:[{&amp;quot;id&amp;quot;:800,&amp;quot;main&amp;quot;:&amp;quot;Clear&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;Cel net&amp;quot;,&amp;quot;icon&amp;quot;:&amp;quot;01n&amp;quot;}],&amp;quot;base&amp;quot;:&amp;quot;stations&amp;quot;,&amp;quot;main&amp;quot;:{&amp;quot;temp&amp;quot;:15,&amp;quot;pressure&amp;quot;:1009,&amp;quot;humidity&amp;quot;:48,&amp;quot;temp_min&amp;quot;:14,&amp;quot;temp_max&amp;quot;:16},&amp;quot;visibility&amp;quot;:10000,&amp;quot;wind&amp;quot;:{&amp;quot;speed&amp;quot;:4.1,&amp;quot;deg&amp;quot;:250},&amp;quot;clouds&amp;quot;:{&amp;quot;all&amp;quot;:0},&amp;quot;dt&amp;quot;:1488304800,&amp;quot;sys&amp;quot;:{&amp;quot;type&amp;quot;:1,&amp;quot;id&amp;quot;:5485,&amp;quot;message&amp;quot;:0.0245,&amp;quot;country&amp;quot;:&amp;quot;ES&amp;quot;,&amp;quot;sunrise&amp;quot;:1488263171,&amp;quot;sunset&amp;quot;:1488303710},&amp;quot;id&amp;quot;:3128760,&amp;quot;name&amp;quot;:&amp;quot;Barcelona&amp;quot;,&amp;quot;cod&amp;quot;:200}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
script '''openweathermap.html''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;es&amp;quot; lang=&amp;quot;es&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;El temps a Barcelona&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;keywords&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html charset=utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
	var xmlhttp;&lt;br /&gt;
	var txt;&lt;br /&gt;
	xmlhttp=new XMLHttpRequest();&lt;br /&gt;
&lt;br /&gt;
	xmlhttp.onreadystatechange=function()&lt;br /&gt;
	{&lt;br /&gt;
		if (xmlhttp.readyState==4 &amp;amp;&amp;amp; xmlhttp.status==200)&lt;br /&gt;
		{&lt;br /&gt;
			txt=xmlhttp.responseText;&lt;br /&gt;
			//{&amp;quot;coord&amp;quot;:{&amp;quot;lon&amp;quot;:2.16,&amp;quot;lat&amp;quot;:41.39},&amp;quot;weather&amp;quot;:[{&amp;quot;id&amp;quot;:800,&amp;quot;main&amp;quot;:&amp;quot;Clear&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;Cel net&amp;quot;,&amp;quot;icon&amp;quot;:&amp;quot;01n&amp;quot;}],&amp;quot;base&amp;quot;:&amp;quot;stations&amp;quot;,&amp;quot;main&amp;quot;:{&amp;quot;temp&amp;quot;:15,&amp;quot;pressure&amp;quot;:1009,&amp;quot;humidity&amp;quot;:48,&amp;quot;temp_min&amp;quot;:14,&amp;quot;temp_max&amp;quot;:16},&amp;quot;visibility&amp;quot;:10000,&amp;quot;wind&amp;quot;:{&amp;quot;speed&amp;quot;:4.1,&amp;quot;deg&amp;quot;:250},&amp;quot;clouds&amp;quot;:{&amp;quot;all&amp;quot;:0},&amp;quot;dt&amp;quot;:1488304800,&amp;quot;sys&amp;quot;:{&amp;quot;type&amp;quot;:1,&amp;quot;id&amp;quot;:5485,&amp;quot;message&amp;quot;:0.0245,&amp;quot;country&amp;quot;:&amp;quot;ES&amp;quot;,&amp;quot;sunrise&amp;quot;:1488263171,&amp;quot;sunset&amp;quot;:1488303710},&amp;quot;id&amp;quot;:3128760,&amp;quot;name&amp;quot;:&amp;quot;Barcelona&amp;quot;,&amp;quot;cod&amp;quot;:200}&lt;br /&gt;
&lt;br /&gt;
			//alert(txt);&lt;br /&gt;
			//http://www.javascriptkit.com/dhtmltutors/ajaxgetpost4.shtml&lt;br /&gt;
			//var jsondata = eval(&amp;quot;(&amp;quot;+txt+&amp;quot;)&amp;quot;); //retrieve result as an JavaScript object&lt;br /&gt;
			//millor:			&lt;br /&gt;
			var jsondata = JSON.parse(txt); &lt;br /&gt;
			var temperatura = jsondata.main.temp;&lt;br /&gt;
			var output = '&amp;lt;ul&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;li&amp;gt;Temperatura: ' + jsondata.main.temp + ' graus&amp;lt;/li&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;li&amp;gt;Pressió: ' + jsondata.main.pressure + ' mbar&amp;lt;/li&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;li&amp;gt;Humitat: ' + jsondata.main.temp + ' %&amp;lt;/li&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;li&amp;gt;' + jsondata.weather[0].description + '&amp;lt;/li&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;/ul&amp;gt;';&lt;br /&gt;
			output += '&amp;lt;img src=\&amp;quot;http://openweathermap.org/img/w/' + jsondata.weather[0].icon  + '.png\&amp;quot; /&amp;gt;';&lt;br /&gt;
			document.getElementById(&amp;quot;info&amp;quot;).innerHTML = output;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	xmlhttp.open(&amp;quot;GET&amp;quot;,&amp;quot;http://api.openweathermap.org/data/2.5/weather?q=Barcelona&amp;amp;units=metric&amp;amp;lang=ca&amp;amp;APPID=e2aec1bc0914a482546efb1b491a6f2a&amp;quot;,true);&lt;br /&gt;
	xmlhttp.send();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload='llistar_cotxes()'&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;El temps a Barcelona&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;info&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercici 5: pràctica lliure amb JSONP==&lt;br /&gt;
'''NOTA''': no tots els serveis web que ofereixen informació en format JSON vol dir que són accessibles amb la tècnica JSONP. Amb aquesta tècnica només podem utiltizar aquells casos que el programador hagi previst que nosaltres puguem accedir a les dades amb una crida de ''callback''. Aquí se us proposa tres exemples més.&lt;br /&gt;
&lt;br /&gt;
La idea és que l'alumne trobi exemples a la web de recursos JSON que li siguin interessants. Si no trobes res d'interessant, a continuació tenius uns exemples amb els quals podeu practicar.&lt;br /&gt;
===openlibrary.org===&lt;br /&gt;
És el cas més interessant. Podem navegar per la base de dades i agafar el codi d'un llibre o d'un autor. Si sabem el codi, podem accedir a la informació del llibre o de l'autor amb JSONP:&lt;br /&gt;
&lt;br /&gt;
*https://openlibrary.org&lt;br /&gt;
*https://openlibrary.org/works/OL15346397W/El_ingenioso_hidalgo_Don_Quixote_de_la_Mancha&lt;br /&gt;
*http://openlibrary.org/works/OL15346397W.json?callback=foo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://openlibrary.org/authors/OL73169A/Maria_de_la_Pau_Janer&lt;br /&gt;
*https://openlibrary.org/authors/OL73169A.json&lt;br /&gt;
*https://openlibrary.org/authors/OL73169A.json?callback=foo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://openlibrary.org/works/OL16812072W/Pasiones_romanas&lt;br /&gt;
*https://openlibrary.org/works/OL16812072W.json&lt;br /&gt;
*https://openlibrary.org/works/OL16812072W.json?callback=foo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://openlibrary.org/authors/OL285508A/Jose%CC%81_Mari%CC%81a_Quintana_Cabanas&lt;br /&gt;
*https://openlibrary.org/works/OL285508A.json&lt;br /&gt;
*https://openlibrary.org/works/OL285508A.json?callback=foo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*https://openlibrary.org/works/OL2221471W/Rai%CC%81ces_griegas_del_le%CC%81xico_castellano_cienti%CC%81fico_y_me%CC%81dico&lt;br /&gt;
*https://openlibrary.org/works/OL2221471W.json&lt;br /&gt;
*https://openlibrary.org/works/OL2221471W.json?callback=foo&lt;br /&gt;
&lt;br /&gt;
===informació meteorològica (USA)===&lt;br /&gt;
*https://www.aviationweather.gov/help/webservice?page=metarjson&lt;br /&gt;
*https://www.aviationweather.gov/gis/scripts/MetarJSON.php&lt;br /&gt;
*https://www.aviationweather.gov/gis/scripts/MetarJSON.php?jsonp=foo&lt;br /&gt;
&lt;br /&gt;
===informació de terratrèmols===&lt;br /&gt;
*https://developers.google.com/maps/tutorials/data/importing_data#requesting_jsonp&lt;br /&gt;
*http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojsonp&lt;br /&gt;
&lt;br /&gt;
=Entrega=&lt;br /&gt;
Els alumnes entregaran al Schoology tots els fitxers generats (fitxers html). S'empaquetaran tots aquests fitxers i es pujaran al Schoology dins del termini d'entrega de la pràctica.&lt;br /&gt;
&lt;br /&gt;
Recorda la '''normativa''' per entregar les pràctiques al Schoology: [[ASIX-M10-UF2#Normativa_d.27entrega_de_les_pr.C3.A0ctiques_al_Schoology]]&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, febrer 2019&lt;br /&gt;
[[Categoria: Institut Jaume Balmes]]&lt;br /&gt;
[[Categoria: Assignatura DAW-M06-WEC]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>