TP 2 Master CTN 2015

Transcription

TP 2 Master CTN 2015
TP 2 Master CTN 2015
A Une fonction strpos.
Lisez la documentation sur la fonction strpos : http://us2.php.net/manual/fr/function.strpos.php
strpos cherche dans la première chaine si la seconde existe et à quelle position elle se trouve.
Si elle ne se trouve pas elle retourne false (faux en VF)
$position = strpos( "bonjour je suis la première chaine" , "je") ;
echo ( $position ) ;
Indiquez le résultat de ces 2 lignes que vous pouvez programmer dans un fichier strpos_test.php:
Faites varier le second paramètre pour vérifie le fonctionnement en cherchant "la".
Modifier le programme comme ci-dessous:
$position = strpos( "bonjour je suis un tweet à propos de #MasterCTN " , "#MasterCTN") ;
echo( $position ) ;
$position = strpos( "bonjour je suis un tweet à propos de #MINES-ALES" , "#MasterCTN") ;
echo( $position ) ;
Imaginez une nouvelle page php qui devrait afficher que les tweets dont le hashtag est Master CTN en utilisant
strpos et le test if ( $position > 0 ) { }
Imaginez une nouvelle page php qui devrait afficher que les tweets dont le hashtag n’est pas Master CTN en
utilisant strpos et le test if ( $position == false ) { }
B Accès à twitter
Activation d’un compte de développeur sur twitter :
https://twitter.com/signup
Création d’une application avec ces informations
https://dev.twitter.com/apps/new
Récupération des valeurs de l’authentification Oauth
Notez le Consumer Key et Consumer secret indiqués sur cette nouvelle page :
Créez les jetons d’accès « Create my access token »…
NOTA : ce n’est pas instantané, il faut parfois attendre pour obtenir les nouveaux réglages comme
indiquez ci-dessous :
Notez les Access token et Access token secret.
Si c’est votre première connection sur Twitter, entrez quelques tweets sinon vous ne trouverez pas de
tweets dans votre TP.
Récupérer le fichier http://www.master-ctn.mines-ales.fr/install/twitter.zip
Ce fichier zip comporte 3 programmes php :
OAuth.php et TwitterOAuth.php sont des bibliothèques de fonctions fournis par un développeur
professionnel pour accéder à twitter depuis un programme php
client-twitter.php est un programme php qui utilise les 2 bibliothèques ci-dessus et que nous allons
modifier pour l’utilisation que nous souhaitons avoir.
Dans le fichier client-twitter.php indiquer dans les variables correspondantes les 4différentes valeurs récupéré
précédemment en lieu et place de mes clefs de tests :
$consumerKey = "";
$consumerSecret = "";
$accessToken = "";
$accessTokenSecret = "";
En premier lieu, essayer le programme pour afficher vos tweets. Améliorer l’affichage des tweets par une mise
en page similaire au TP précédent.
Cette ligne en commentaire est en fait l’affichage brut des données depuis Twitte en l’activant
vous pouvez afficher les données brutes en provenance de Twitter à mettre par exemple dans
(http://jsonviewer.stack.hu/)
// print_r( $twitterTimeline );
C Compteur de nombre de tweets
Bien que des solutions via les API existent, nous allons faire afficher le nombre de tweets du sujet Master CTN.
Si je vous donne comme indication que l’on peut créer une variable PHP via la ligne suivante
$nombreTweetMasterCTN = 0;
Et que l’on peut la faire augmenter de 1 à chaque fois qu’il y a cette ligne PHP dans le code :
$nombreTweetMasterCTN = $nombreTweetMasterCTN + 1;
Que devrait faire l’algorithme :
1/ Créer la variable contenant le nombre de tweet
2/ récupérer successivement chaque tweet
3/
4/
5/
6/
Nota : le nombre d’étape de l’algorithme est purement informatif, il peut y en avoir plus ou moins selon votre
niveau de détail.
Affichez un div avec une couleur de fond rouge dont la largeur va dépendre du nombre de tweet (multiplié par
10 ainsi 1 tweet aura un div de largeur 10px, 2 tweets auront un div de largeur 20px, etc.)
Par exemple ici ce div à une largeur de 50px pour symboliser que j’ai trouvé 5 tweets
<div style="background-color:red; height:100px; width:50px; "/>
D Ajouter un champs de formulaire
Notre objectif dans cette nouvelle page est de proposer un champ de formulaire pour que l’internaute puisse
choisir le sujet au lieu de ne chercher qu’à suivre que le sujet Master CTN.
Copiez la page précédente dans une nouvelle page PHP.
Dans une page HTML :
Fabriquez un formulaire et un champ de formulaire dont le name est sujet.
Le formulaire doit aussi avoir un bouton submit.
Il doit appeler par l’attribut action la nouvelle page PHP.
Comment faire pour afficher dans la page PHP la variable $_REQUEST["sujet"] ?
S’il n’y a pas de variable $_REQUEST["sujet"], vous devriez avoir ce message d’information (Notice)
! ) Notice: Undefined index: sujet in C:\Developpement\www\Tweets\twitter-ctn2015.php on line 25
Call Stack
# Time
1
0.0020
Memory
Function
245536 {main}( )
Location
..\twitter-ctn2015.php:0
La fonction isset( $_REQUEST["sujet"] permet de tester si $_REQUEST["sujet"] existe, essayez de créer une
variable $sujet qui contient soit la valeur de $_REQUEST["sujet"] si elle est définie (« is set » en anglais =
isset) sinon une valeur autre par exemple "CTN".
Cette page PHP devrait pouvoir afficher le sujet que l’internaute souhaite chercher dans les tweets, le nombre
de tweets et le div de largeur variable en fonction de ce nombre trouvé.
E Autre API de twitter
Essayer ce programme avec différents « REST API v1.1 Resources » de Twitter (à trouver avec Google sur le
site de twitter) et si besoin utilisez des paramètres comme démontré ci-dessous avec les paramètres « count » et
« include_entities » :
$twitterTimeline = $connection->get("statuses/user_timeline" , array("count"=>1,"include_entities"=>false ) );
A partir de ce code, on peut donc afficher les informations directement en provenance de Twitter, via l’appel
aux ressources : https://dev.twitter.com/docs/api/1.1
Par exemple, on peut réaliser une recherche sur Twitter :
$twitterTimeline = $connection->get("search/tweets", array("q" => "%23CTN" ) );