Zend_Gdata_ClientLogin.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15156 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.gdata.clientlogin">
  5. <title>Authentifizieren mit ClientLogin</title>
  6. <para>
  7. Der ClientLogin Mechanismus erlaubt es PHP Anwendungen zu schreiben die Authentifizierungs-zugriff
  8. zu Google Services benötigen, durch die Spezifikation von Benutzer Zugangsdaten im Http Client.
  9. </para>
  10. <para>
  11. Siehe
  12. <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html"> http://code.google.com/apis/accounts/AuthForInstalledApps.html</ulink>
  13. für weitere Informationen über die Google Data ClientLogin Authentifizierung.
  14. </para>
  15. <para>
  16. Die Google Dokumentation sagt das der ClientLogin Mechanismus genau richtig für "installierte Anwendungen"
  17. ist und der AuthSub Mechanismus für "Web Anwendungen". Der Unterschied ist, das AuthSub Interaktion vom
  18. Benutzer benötigt, und ein Browser Interface das auf Weiterleitungs Anfragen reagieren kann. Die ClientLogin
  19. Lösung verwendet PHP Code um die Benutzer Zugangsdaten zu liefern; der Benutzer wird nicht benötigt um seine
  20. Zugangsdaten interaktiv einzugeben.
  21. </para>
  22. <para>
  23. Die Account Zugangsdaten die über den ClientLogin Mechanismum geliefert werden müssen gültige Zugangsdaten
  24. für Google Services sein, aber es müssen nicht die des Benutzers sein, der die PHP Anwendung verwendet.
  25. </para>
  26. <sect2 id="zend.gdata.clientlogin.login">
  27. <title>Erstellen eines ClientLogin autentifizierten Http Clienten</title>
  28. <para>
  29. Der Prozess der Erstellung eines autentifizierten Http Clients durch Verwendung des ClientLogin
  30. Mechanismus besteht darin die statische Funktion <classname>Zend_Gdata_ClientLogin::getHttpClient()</classname>
  31. aufzurufen und die Google Account Zugangsdaten als reinen Text zu übergeben. Der Rückgabewert dieser
  32. Funktion ist ein Objekt der Klasse <classname>Zend_Http_Client</classname>.
  33. </para>
  34. <para>
  35. Der optionale dritte Parameter ist der Name des Google Data Services. Zum Beispiel kann dieser 'cl'
  36. sein für Google Calendar. Der Standardwert ist "xapi", welcher von den Google Data Servern als
  37. generischer Service Name erkannt wird.
  38. </para>
  39. <para>
  40. Der optionale vierte Parameter ist eine Instanz von <classname>Zend_Http_Client</classname>. Das erlaubt das Setzen von Optionen
  41. an den Client, wie z.B. Proxy Server Einstellungen. Wenn für diesen Parameter <code>null</code> übergeben
  42. wird, wird ein generisches <classname>Zend_Http_Client</classname> Objekt erstellt.
  43. </para>
  44. <para>
  45. Der optionale fünfte Parameter ist ein kurzer String den Google Data Server verwenden um die Client
  46. Anwendung für logging Zwecke zu identifizieren. Standardmäßig ist dieser String "Zend-ZendFramework";
  47. </para>
  48. <para>
  49. Der optionale sechste Parameter ist eine String ID für eine <trademark>CAPTCHA</trademark> Challenge
  50. die vom Server angefordert wird. Er wird nur benötigt wenn eingeloggt werden soll nachdem eine
  51. <trademark>CAPTCHA</trademark> Challenge von einem vorhergehenden Login Versuch empfangen wurde.
  52. </para>
  53. <para>
  54. Der optionale siebente Parameter ist die Antwort des Benutzer's zu einer
  55. <trademark>CAPTCHA</trademark> Challenge die von dem Server angefordert wurde. Er wird nur benötigt
  56. wenn eingeloggt werden soll nachdem eine <trademark>CAPTCHA</trademark> Challenge von einem
  57. vorhergehenden Login Versuch empfangen wurde.
  58. </para>
  59. <para>
  60. Anbei ist ein Beispiel in PHP Code für eine Web Anwendung die Authentifizierung benötigt um das
  61. Google Calendar Service zu verwenden und ein <classname>Zend_Gdata</classname> Client Objekt zu erstellen das diesen
  62. authentifizierten <classname>Zend_Http_Client</classname> verwendet.
  63. </para>
  64. <programlisting role="php"><![CDATA[
  65. // Die Google Zugangdaten angeben
  66. $email = 'johndoe@gmail.com';
  67. $passwd = 'xxxxxxxx';
  68. try {
  69. $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
  70. } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
  71. echo 'URL des CAPTCHA Bildes: ' . $cre->getCaptchaUrl() . "\n";
  72. echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
  73. } catch (Zend_Gdata_App_AuthException $ae) {
  74. echo 'Authentifizierungs Problem: ' . $ae->exception() . "\n";
  75. }
  76. $cal = new Zend_Gdata_Calendar($client);
  77. ]]></programlisting>
  78. </sect2>
  79. <sect2 id="zend.gdata.clientlogin.terminating">
  80. <title>Den über ClientLogin authentifizierten Http Client beenden</title>
  81. <para>
  82. Es gibt keine Methode um ClientLogin Authentifizierungen zu verwerfen da es eine AuthSub token-basierte
  83. Lösung gibt. Die Zugangsdaten die in der ClientLogin Authentifizierung verwendet werden sind der
  84. Login und das Passwort zu einem Google Account, und deshalb können diese wiederholend in der Zukunft
  85. verwendet werden.
  86. </para>
  87. </sect2>
  88. </sect1>