Zend_Gdata_ClientLogin.xml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <!-- EN-Revision: 13842 -->
  2. <sect1 id="zend.gdata.clientlogin">
  3. <title>Authentification avec ClientLogin</title>
  4. <para>Le mécanisme dit "ClientLogin" vous permet d'écrire des applications PHP qui récupèrent une authentification
  5. vis à vis des services Google, en spécifiant des identifiants dans le client HTTP.</para>
  6. <para>Voyez <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html">
  7. http://code.google.com/apis/accounts/AuthForInstalledApps.html </ulink> pour plus d'informations sur
  8. l'authentification ClientLogin de Google Data.</para>
  9. <para>La documentation Google indique que le mécanisme ClientLogin est approprié dans le cas d'applications
  10. embarquées, à la différence du mécanisme AuthSub, utilisé pour les applications Web ayant recours à une
  11. authentification extérieure. AuthSub récupère des identifiant d'un utilisateur de l'application Web, et un
  12. navigateur réagissant aux redirections est requis. Le processus ClientLogin, lui, utilise du code PHP tel qu'écrit
  13. dans l'application elle-même. L'utilisateur de l'application n'entre pas en jeu pour fournir des identifiants de
  14. manière interactive.</para>
  15. <para>Les identifiants fournis au mécanisme ClientLogin doivent correspondre à des identifiants valides pour les
  16. services Google, mais il n'est pas nécessaire qu'ils correspondent à ceux de l'utilisateur de l'application.</para>
  17. <sect2 id="zend.gdata.clientlogin.login">
  18. <title>Création d'un client HTTP "ClientLogin" authentifié</title>
  19. <para>La création d'un client HTTP "ClientLogin" authentifié est un processus servi par la méthode statique
  20. <classname>Zend_Gdata_ClientLogin::getHttpClient()</classname>. Passez lui les identifiants Google services sous forme de
  21. texte (plain text). La valeur de retour de cette méthode est un objet <classname>Zend_Http_Client</classname>.</para>
  22. <para>Le troisième paramètre optionnel est le nom du service Google Data. Par exemple, il peut être "cl" pour
  23. Google Calendar. Par défaut il s'agit de "xapi", ce qui correspond au service générique de Google Data.</para>
  24. <para>La quatrième paramètre optionnel est une instance de <classname>Zend_Http_Client</classname>. Vous pouvez alors
  25. configurer votre client à part (par exemple lui ajouter des options pour la gestion d'un Proxy). Si vous passez
  26. <code>null</code> à ce paramètre, alors un client <classname>Zend_Http_Client</classname> générique est crée.</para>
  27. <para>Le cinquième paramètre optionnel est le nom du client que les serveurs Google Data identifieront en
  28. interne. Par défaut il s'agit de "Zend-ZendFramework".</para>
  29. <para>Le sixième paramètre, toujours optionnel, est l'ID pour le challenge <trademark>CAPTCHA</trademark>
  30. retourné par le serveur. Ce paramètre n'est nécessaire que si vous avez reçu un challenge lors d'un processus
  31. d'authentification passé, et que vous le renvoyez pour résolution..</para>
  32. <para>Le septième paramètre optionnel représente la réponse de l'utilisateur au challenge
  33. <trademark>CAPTCHA</trademark> précédemment reçu. Il n'est donc nécessaire que si vous avez reçu un challenge
  34. <trademark>CAPTCHA</trademark> à résoudre.</para>
  35. <para>Ci dessous, un exemple d'une application PHP qui s'authentifie auprès du service Google Calendar et crée
  36. un objet client <classname>Zend_Gdata</classname> utilisant l'objet <classname>Zend_Http_Client</classname> fraîchement authentifié
  37. :</para>
  38. <programlisting role="php"><![CDATA[
  39. // identifiants de compte Google
  40. $email = 'johndoe@gmail.com';
  41. $passwd = 'xxxxxxxx';
  42. try {
  43. $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
  44. } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
  45. echo 'l'URL de l\'image CAPTCHA est: ' . $cre->getCaptchaUrl() . "\n";
  46. echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
  47. } catch (Zend_Gdata_App_AuthException $ae) {
  48. echo 'Problème d'authentification : ' . $ae->exception() . "\n";
  49. }
  50. $cal = new Zend_Gdata_Calendar($client);
  51. ]]></programlisting>
  52. </sect2>
  53. <sect2 id="zend.gdata.clientlogin.terminating">
  54. <title>Fermer un client HTTP authentifié par ClientLogin</title>
  55. <para>Il n'y a pas de méthode pour supprimer l'authentification effectuée via un ClientLogin, comme c'est le cas
  56. avec le système de jeton du procédé AuthSub. Les identifiants dans le ClientLogin étant un identifiant et un mot
  57. de passe de compte Google, ils ne peuvent être invalidés et sont utilisables de manière continue.</para>
  58. </sect2>
  59. </sect1>