38
http:// eric.daspet.name/ http:// performance.survol.fr / Éric Daspet un web ouvert 9 oct. 2009

Un web ouvert, Paris Web 2009

  • Upload
    eric-d

  • View
    656

  • Download
    3

Embed Size (px)

DESCRIPTION

Comment faire un site ouvert sur le web ?De nombreux services fournissent maintenant des API vers leurs données et des flux d’export RSS. Nous allons dépasser ce degré zéro d’ouverture pour tenter de voir ce qui est envisageable.Certaines briques déjà existantes vous permettent d’ors et déjà de faire reposer votre site sur l’existant. Identification OpenId, communication entre applications par OAuth, exploration par YQL, SPARQL ou BOSS, les possibilités ne manquent pas et permettent de développer rapidement le service qui manque sans tout recréer déconnecté du reste du web.Ensuite nous parlerons de vie privée, de contrôle de ses données par l’utilisateur, et de toutes ces problématiques "gênantes" mais qui sont des réflexions indispensable dans le web d’aujourd’hui.Voir http://www.paris-web.fr/2009/-Vendredi-9-octobre-#conf59

Citation preview

Page 1: Un web ouvert, Paris Web 2009

http://eric.daspet.name/http://performance.survol.fr/

Éric Daspet

un web ouvert

9 oct. 2009

Page 2: Un web ouvert, Paris Web 2009
Page 3: Un web ouvert, Paris Web 2009

« Toute création de lien hypertextes avec ce site est strictement interdite sans l'autorisation écrite et préalable »

Page 4: Un web ouvert, Paris Web 2009

AFNOR, Alstom, Apple Expo, Autoroutes Paris Rhin Rhône, ATAC, Autrement le web, BHV, Bombardier, Caisse des dépôts et consignations, Centre Français d'exploitation du droit de copie, Chambre de commerce et d'industrie de Reims et d'Epernay (CCIRE), Champion, CNED, Conseil constitutionnel français, CRDP Amiens, Crédit lyonnais, Dimanches au galop, DORMA STA, Esourds, Festival de Cannes, FIFA, France Televisions, France 24, Fédération Française de Football, Foire de Paris, GIAT Industries, Haute Autorité de Lutte contre les Discriminations et pour l'Égalité, Hapag-Lloyd Express, Hollywood Chewing Gum, INSEE, Intelli'n TV, Député Isabelle Vasseur, JO Athènes 2004, J'aime les artistes.fr, Jamais la première (fédération française de cardiologie), Kellogg's, Konami, LCBO (régie des alcools de l'Ontario), M6, Mc Donald's France, Ministère de l'Écologie, de l'Énergie, du Développement durable et de la Mer, Nespresso France, Orange Business, Salon Planète Durable, POM POM, Prévention Tabac (Pfizer), RATP, Reed Expos, Rêves, Coupe du monde de rugby 2007, Salon de l'agriculture 2007, Semaine du goût, Simply Market, Sodexo, Sony France, Société des Transports Intercommunaux de Bruxelles, Starzik, Tabac Info Service, Tassimo France, Téléthon, 3M, 20 minutes, Vichy Consult, Virgin Megastore, Voies navigables de France, Voyages-sncf ... et plein d'autres

Page 5: Un web ouvert, Paris Web 2009
Page 6: Un web ouvert, Paris Web 2009
Page 7: Un web ouvert, Paris Web 2009
Page 8: Un web ouvert, Paris Web 2009
Page 9: Un web ouvert, Paris Web 2009

RSSATOM

Page 10: Un web ouvert, Paris Web 2009

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom">

<title>Example Feed</title> <link href="http://example.org/"/> <updated>2003-12-13T18:30:02Z</updated> <author> <name>John Doe</name> </author> <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

<entry> <title>Atom-Powered Robots Run Amok</title> <link href="http://example.org/2003/12/13/atom03"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary> </entry>

</feed>

Page 11: Un web ouvert, Paris Web 2009

RSSATOM

ICS

Page 12: Un web ouvert, Paris Web 2009

RSSATOM

ICS

RDF(a)

µformats

Page 13: Un web ouvert, Paris Web 2009
Page 14: Un web ouvert, Paris Web 2009

OpenId

Page 15: Un web ouvert, Paris Web 2009

<?php$status = "";if (isset($_POST['openid_action']) &&    $_POST['openid_action'] == "login" &&    !empty($_POST['openid_identifier'])) {

    $consumer = new Zend_OpenId_Consumer();    if (!$consumer->login($_POST['openid_identifier'])) {        $status = "OpenID login failed.";    }} else if (isset($_GET['openid_mode'])) {    if ($_GET['openid_mode'] == "id_res") {        $consumer = new Zend_OpenId_Consumer();        if ($consumer->verify($_GET, $id)) {            $status = "VALID " . htmlspecialchars($id);        } else {            $status = "INVALID " . htmlspecialchars($id);        }    } else if ($_GET['openid_mode'] == "cancel") {        $status = "CANCELLED";    }}?>

Page 16: Un web ouvert, Paris Web 2009

OpenId OAuth

Page 17: Un web ouvert, Paris Web 2009

$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';$api_url = 'https://fireeagle.yahooapis.com/api/0.1';$conskey = 'your_consumer_key';$conssec = 'your_consumer_secret';

session_start();

// In state=1 the next request should include an oauth_token, if it doesn't go back to 0if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;

try { $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI); $oauth->enableDebug(); if(!isset($_GET['oauth_token']) && !$_SESSION['state']) { $request_token_info = $oauth->getRequestToken($req_url); $_SESSION['secret'] = $request_token_info['oauth_token_secret']; $_SESSION['state'] = 1; header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']); exit; } else if($_SESSION['state']==1) { $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']); $access_token_info = $oauth->getAccessToken($acc_url); $_SESSION['state'] = 2; $_SESSION['token'] = $access_token_info['oauth_token']; $_SESSION['secret'] = $access_token_info['oauth_token_secret']; } $oauth->setToken($_SESSION['token'],$_SESSION['secret']); $oauth->fetch("$api_url/user.json"); $json = json_decode($oauth->getLastResponse()); print_r($json);}catch(OAuthException $E) { print_r($E);}

Page 18: Un web ouvert, Paris Web 2009
Page 19: Un web ouvert, Paris Web 2009

API

Page 20: Un web ouvert, Paris Web 2009

API

REST

XML

Page 21: Un web ouvert, Paris Web 2009

API

REST

XML

Exports

Page 22: Un web ouvert, Paris Web 2009
Page 23: Un web ouvert, Paris Web 2009

RDF + SPARQL                                                         

Page 24: Un web ouvert, Paris Web 2009

PREFIX mo: <http://purl.org/ontology/mo/>SELECT ?albumWHERE { ?album a mo:Record; mo:releaseType mo:album; dc:creator <http://zitgist.com/music/artist/65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab>.} ORDER BY ?album

Page 25: Un web ouvert, Paris Web 2009

RDF + SPARQL                   OpenSocial                             YQL , BOSS                                      

Page 26: Un web ouvert, Paris Web 2009

$two_legged_app = new YahooApplication(API_KEY,SHARED_SECRET); $flickr_query = "select * from flickr.photos.search where text=\"panda\" limit 3";$news_feed = "select * from rss where url='http://rss…../topstories' and title LIKE \"%China%\"";

$flickrResponse = $two_legged_app->query($flickr_query);var_dump($flickrResponse);

$newsResponse = $two_legged_app->query($news_feed);var_dump($newsResponse);

Page 27: Un web ouvert, Paris Web 2009
Page 28: Un web ouvert, Paris Web 2009

<?phpinclude("xmpp.php");$conn = new XMPP('talk.google.com', 5222, 'username', 'password', 'xmpphp', 'gmail.com’);$conn->connect();$conn->processUntil('session_start');$conn->message('[email protected]', 'This is a test message!');$conn->disconnect();?>

Page 29: Un web ouvert, Paris Web 2009
Page 30: Un web ouvert, Paris Web 2009
Page 31: Un web ouvert, Paris Web 2009
Page 32: Un web ouvert, Paris Web 2009
Page 33: Un web ouvert, Paris Web 2009
Page 34: Un web ouvert, Paris Web 2009
Page 35: Un web ouvert, Paris Web 2009

http://eric.daspet.name/http://performance.survol.fr/

Éric Daspet

un web ouvert

9 oct. 2009

Page 36: Un web ouvert, Paris Web 2009
Page 37: Un web ouvert, Paris Web 2009
Page 38: Un web ouvert, Paris Web 2009

Licences et créditsImages sous licence Creative Commons BY-NC 2.0 :- Schiermonnikoog 2, par Oude School, http://www.flickr.com/photos/oudeschool/3504368910/ - (not mine, but had to share), par number657, http://www.flickr.com/photos/number657/3006902331/

Images sous licence Creative Commons BY 2.0 :- image-7136, par le Cushing Memorial Library and Archives, Texas A&M, http://www.flickr.com/photos/cushinglibrary/3542093711/

Images sous licence Creative Commons BY-NC-SA 2.0 :- Pelouse Autorisée, par SaEzOd, http://www.flickr.com/photos/sazeod/505708919/- Old style way, par Bruno 1802, http://www.flickr.com/photos/bruno_1802/3434231232/- Patchwork Extravaganza, par hassi, http://www.flickr.com/photos/14603378@N00/140847298/- Relique d'un autre temps, par Denis Vailhe, http://www.flickr.com/photos/dvailhe/3700361343/ - We are all connected., par Erica Marshall, http://www.flickr.com/photos/erica_marshall/2885783824/- Creative Commons Swag Contest 2007 by Pablokdc, par Pablokdc, http://www.flickr.com/photos/pablokdc/2053079693/- Mes bagages de départ @ Ma chambre, Bondi-Junction, Sydney, Australia, par raguy, http://www.flickr.com/photos/raguy/3674500467/

Images sous licence Creative Commons BY-NC-ND 2.0 :- His first steps!, par Photochiel, http://www.flickr.com/photos/photochiel/317904412/- 037: Authentication, par william couch, http://www.flickr.com/photos/wcouch/2249423453/ - Sharing, par furiousgeorge81, http://www.flickr.com/photos/furiousgeorge81/177926979/- Propriété privée, par Quelqu'une, http://www.flickr.com/photos/quelqu_une/3638322346/

Cette présentation est donc légitimement sous licence Creative Commons BY-NC-ND 2.0Les licences Creative Commons sont consultables à l’adresse : http://creativecommons.org/licenses/

Merci à : SQLI, l’équipe Paris-web, David Larlet