|
|
@@ -5,32 +5,34 @@
|
|
|
<title>Google Apps Provisionierung verwenden</title>
|
|
|
|
|
|
<para>
|
|
|
- Google Apps ist ein Service der es Domain Administratoren erlaubt Ihren Benutzern einen gemanagten
|
|
|
- Zugriff auf Google Services wie Mail, Kalender und Dokumente & Tabellenkalkulationen zu bieten.
|
|
|
- Die Provisionierungs API bietet ein programmmäßiges Interface um dieses Service zu konfigurieren.
|
|
|
- Im speziellen erlaubt es diese API den Administratoren Benutzerzugänge, Nicknamen und Email Listen
|
|
|
- zu erstellen, zu empfangen, zu verändern und zu löschen.
|
|
|
+ Google Apps ist ein Service der es Domain Administratoren erlaubt Ihren Benutzern einen
|
|
|
+ gemanagten Zugriff auf Google Services wie Mail, Kalender und Dokumente &
|
|
|
+ Tabellenkalkulationen zu bieten. Die Provisionierungs API bietet ein programmmäßiges
|
|
|
+ Interface um dieses Service zu konfigurieren. Im speziellen erlaubt es diese API den
|
|
|
+ Administratoren Benutzerzugänge, Nicknamen und Email Listen zu erstellen, zu empfangen, zu
|
|
|
+ verändern und zu löschen.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Diese Bibliothek implementiert die Version 2.0 der Provisionierungs API. Zugriff zum eigenen Konto über
|
|
|
- die Provisionierungs API muß manuell für jede Domain aktiviert werden die das Google Apps Kontrollpanel
|
|
|
- verwendet. Nur bestimmte Kontotpen sind fähig dieses Feature einzuschalten.
|
|
|
+ Diese Bibliothek implementiert die Version 2.0 der Provisionierungs API. Zugriff zum eigenen
|
|
|
+ Konto über die Provisionierungs API muß manuell für jede Domain aktiviert werden die das
|
|
|
+ Google Apps Kontrollpanel verwendet. Nur bestimmte Kontotpen sind fähig dieses Feature
|
|
|
+ einzuschalten.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Für weitere Information zur Google Apps Provisionierungs API, inklusive Anleitungen für das einschalten
|
|
|
- des API Zugriffs, kann in die
|
|
|
- <ulink url="http://code.google.com/apis/calendar/overview.html">Provisionierungs API V2.0 Referenz</ulink>
|
|
|
- gesehen werden.
|
|
|
+ Für weitere Information zur Google Apps Provisionierungs API, inklusive Anleitungen für das
|
|
|
+ einschalten des API Zugriffs, kann in die
|
|
|
+ <ulink url="http://code.google.com/apis/calendar/overview.html">Provisionierungs API V2.0
|
|
|
+ Referenz</ulink> gesehen werden.
|
|
|
</para>
|
|
|
|
|
|
<note>
|
|
|
<title>Authentifizierung</title>
|
|
|
<para>
|
|
|
- Die Provisionierungs API unterstützt keine Authentifizierung über AuthSub und anonymer Zugriff ist
|
|
|
- nicht gestattet. Alle HTTP Verbindungen müssen mit Hilfe der ClientAuth Authentifizierung
|
|
|
- authentifiziert werden.
|
|
|
+ Die Provisionierungs API unterstützt keine Authentifizierung über AuthSub und anonymer
|
|
|
+ Zugriff ist nicht gestattet. Alle HTTP Verbindungen müssen mit Hilfe der ClientAuth
|
|
|
+ Authentifizierung authentifiziert werden.
|
|
|
</para>
|
|
|
</note>
|
|
|
|
|
|
@@ -38,18 +40,19 @@
|
|
|
<title>Die aktuelle Domain setzen</title>
|
|
|
|
|
|
<para>
|
|
|
- Um die Provisionierungs API zu verwenden muß die Domain, die administriert werden soll, in allen
|
|
|
- Anfrage URIs spezifiziert werden. Um die Entwicklung zu vereinfachen, wird diese Information sowohl
|
|
|
- im Gapps Service und den Abfrageklassen gespeichert um Sie zu verwenden wenn Abfragen erstellt werden.
|
|
|
+ Um die Provisionierungs API zu verwenden muß die Domain, die administriert werden soll,
|
|
|
+ in allen Anfrage URIs spezifiziert werden. Um die Entwicklung zu vereinfachen, wird
|
|
|
+ diese Information sowohl im Gapps Service und den Abfrageklassen gespeichert um Sie zu
|
|
|
+ verwenden wenn Abfragen erstellt werden.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.gdata.gapps.domain.service">
|
|
|
<title>Setzen der Domain für die Serviceklasse</title>
|
|
|
|
|
|
<para>
|
|
|
- Um die Domain für die von der Serviceklasse durchgeführten Anfragen zu setzen kann entweder
|
|
|
- <code>setDomain()</code> aufgerufen oder die Domain bei der Instanzierung der Serviceklasse
|
|
|
- spezifiziert werden. Zum Beispiel:
|
|
|
+ Um die Domain für die von der Serviceklasse durchgeführten Anfragen zu setzen kann
|
|
|
+ entweder <code>setDomain()</code> aufgerufen oder die Domain bei der Instanzierung
|
|
|
+ der Serviceklasse spezifiziert werden. Zum Beispiel:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -63,9 +66,10 @@ $gdata = new Zend_Gdata_Gapps($client, $domain);
|
|
|
<title>Die Domain für die Abfrageklasse setzen</title>
|
|
|
|
|
|
<para>
|
|
|
- Das Setzen der Domain für Anfrage die durch die Abfrageklasse durchgeführt werden ist ähnlich dem
|
|
|
- setzen für die Serviceklasse-entweder wird <code>setDomain()</code> aufgerufen, oder die Domain
|
|
|
- wird bei der Erstellung der Abfrage angegeben. Zum Beispiel:
|
|
|
+ Das Setzen der Domain für Anfrage die durch die Abfrageklasse durchgeführt werden
|
|
|
+ ist ähnlich dem setzen für die Serviceklasse-entweder wird <code>setDomain()</code>
|
|
|
+ aufgerufen, oder die Domain wird bei der Erstellung der Abfrage angegeben. Zum
|
|
|
+ Beispiel:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -74,9 +78,10 @@ $query = new Zend_Gdata_Gapps_UserQuery($domain, $arg);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn eine Serviceklassen Factorymethode verwendet wird um eine Abfrage zu erstellen, setzt
|
|
|
- die Serviceklasse die Domain der Abfrage automatisch so das Sie ihrer eigenen Domain entspricht.
|
|
|
- Als Ergebnis ist es nicht notwendig die Domain als Teil der Konstruktorargumente zu spezifizieren.
|
|
|
+ Wenn eine Serviceklassen Factorymethode verwendet wird um eine Abfrage zu erstellen,
|
|
|
+ setzt die Serviceklasse die Domain der Abfrage automatisch so das Sie ihrer eigenen
|
|
|
+ Domain entspricht. Als Ergebnis ist es nicht notwendig die Domain als Teil der
|
|
|
+ Konstruktorargumente zu spezifizieren.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -94,16 +99,17 @@ $query = $gdata->newUserQuery($arg);
|
|
|
|
|
|
<para>
|
|
|
Jeder Benutzerzugang zu einer Google Apps gehosteten Domain wird als Instanz von
|
|
|
- <classname>Zend_Gdata_Gapps_UserEntry</classname> repräsentiert. Diese Klasse bietet Zugriff zu allen Zugangseigenschaften
|
|
|
- inklusive Name, Benutzername, Passwort, Zugriffsrehte und aktuellen Quoten.
|
|
|
+ <classname>Zend_Gdata_Gapps_UserEntry</classname> repräsentiert. Diese Klasse bietet
|
|
|
+ Zugriff zu allen Zugangseigenschaften inklusive Name, Benutzername, Passwort,
|
|
|
+ Zugriffsrechte und aktuellen Quoten.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.gdata.gapps.users.creating">
|
|
|
<title>Erstellen eines Benutzerzugangs</title>
|
|
|
|
|
|
<para>
|
|
|
- Benutzerzugänge können durch den Aufruf der einfachen <code>createUser()</code> Methode erstellt
|
|
|
- werden:
|
|
|
+ Benutzerzugänge können durch den Aufruf der einfachen <code>createUser()</code>
|
|
|
+ Methode erstellt werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -111,9 +117,10 @@ $gdata->createUser('foo', 'Random', 'User', '••••••••');
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Benutzer können durch das instanzieren eines UserEntry erstellt werden, indem ein Benutzername,
|
|
|
- ein Name, ein Familienname und ein Passwort angegeben werden und anschließend
|
|
|
- <code>insertUser()</code> am Serviceobjekt aufgerufen wird um den Eintrag zum Server zu laden.
|
|
|
+ Benutzer können durch das instanzieren eines UserEntry erstellt werden, indem ein
|
|
|
+ Benutzername, ein Name, ein Familienname und ein Passwort angegeben werden und
|
|
|
+ anschließend <code>insertUser()</code> am Serviceobjekt aufgerufen wird um den
|
|
|
+ Eintrag zum Server zu laden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -128,9 +135,9 @@ $user = $gdata->insertUser($user);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das Passwort den Benutzers sollte normalerweise als Klartext angegeben werden. Operional kann
|
|
|
- das Passwort als SHA-1 Schlüssel angegeben werden wenn <code>login->passwordHashFunction</code>
|
|
|
- auf 'SHA-1' gesetzt ist.
|
|
|
+ Das Passwort den Benutzers sollte normalerweise als Klartext angegeben werden.
|
|
|
+ Operional kann das Passwort als SHA-1 Schlüssel angegeben werden wenn
|
|
|
+ <code>login->passwordHashFunction</code> auf 'SHA-1' gesetzt ist.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -139,9 +146,9 @@ $user = $gdata->insertUser($user);
|
|
|
<title>Einen Benutzerzugang erhalten</title>
|
|
|
|
|
|
<para>
|
|
|
- Individuelle Benutzerzugänge kann man erhalten indem die einfache <code>retrieveUser()</code>
|
|
|
- Methode aufgerufen wird. Wenn der Benutzer nicht gefunden wird, wird <code>null</code>
|
|
|
- zurückgegeben.
|
|
|
+ Individuelle Benutzerzugänge kann man erhalten indem die einfache
|
|
|
+ <code>retrieveUser()</code> Methode aufgerufen wird. Wenn der Benutzer nicht
|
|
|
+ gefunden wird, wird <code>null</code> zurückgegeben.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -159,9 +166,10 @@ echo 'Hat den Regeln zugestimmt: ' .
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Benutzer kann man auch erhalten indem eine Instanz von <classname>Zend_Gdata_Gapps_UserQuery</classname> erstellt wird,
|
|
|
- und dessen username Eigenschaft dem Benutzernamen des Benutzers entspricht den man erhalten will
|
|
|
- und <code>getUserEntry()</code> auf einem Serviceobjekt mit dieser Abfrage aufruft.
|
|
|
+ Benutzer kann man auch erhalten indem eine Instanz von
|
|
|
+ <classname>Zend_Gdata_Gapps_UserQuery</classname> erstellt wird, und dessen username
|
|
|
+ Eigenschaft dem Benutzernamen des Benutzers entspricht den man erhalten will und
|
|
|
+ <code>getUserEntry()</code> auf einem Serviceobjekt mit dieser Abfrage aufruft.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -180,9 +188,11 @@ echo 'Hat den Regeln zugestimmt: ' .
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn der spezifizierte Benutzer nicht gefunden werden kann wird eine ServiceException mit einem
|
|
|
- Fehlercode von <classname>Zend_Gdata_Gapps_Error::ENTITY_DOES_NOT_EXIST</classname> geworfen. ServiceExceptions werden
|
|
|
- in <xref linkend="zend.gdata.gapps.exceptions" /> behandelt.
|
|
|
+ Wenn der spezifizierte Benutzer nicht gefunden werden kann wird eine
|
|
|
+ ServiceException mit einem Fehlercode von
|
|
|
+ <classname>Zend_Gdata_Gapps_Error::ENTITY_DOES_NOT_EXIST</classname> geworfen.
|
|
|
+ ServiceExceptions werden in <xref linkend="zend.gdata.gapps.exceptions" />
|
|
|
+ behandelt.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -191,8 +201,8 @@ echo 'Hat den Regeln zugestimmt: ' .
|
|
|
<title>Alle Benutzer in einer Domain erhalten</title>
|
|
|
|
|
|
<para>
|
|
|
- Um alle Benutzer in einer Domäne zu erhalten kann die einfache <code>retrieveAllUsers()</code>
|
|
|
- Methode aufgerufen werden.
|
|
|
+ Um alle Benutzer in einer Domäne zu erhalten kann die einfache
|
|
|
+ <code>retrieveAllUsers()</code> Methode aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -205,14 +215,14 @@ foreach ($feed as $user) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das wird ein <classname>Zend_Gdata_Gapps_UserFeed</classname> Objekt erstellen welches jeden Benutzer dieser Domain
|
|
|
- enthält.
|
|
|
+ Das wird ein <classname>Zend_Gdata_Gapps_UserFeed</classname> Objekt erstellen
|
|
|
+ welches jeden Benutzer dieser Domain enthält.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann <code>getUserFeed()</code> ohne Optionen aufgerufen werden. Es ist zu beachten
|
|
|
- das dieser Feed bei größeren Domains durch den Server in Seiten ausgegeben werden kann. Über
|
|
|
- weitere Informationen der Ausgabe in Seiten siehe
|
|
|
+ Alternativ kann <code>getUserFeed()</code> ohne Optionen aufgerufen werden. Es ist
|
|
|
+ zu beachten das dieser Feed bei größeren Domains durch den Server in Seiten
|
|
|
+ ausgegeben werden kann. Über weitere Informationen der Ausgabe in Seiten siehe
|
|
|
<xref linkend="zend.gdata.introduction.paging" />.
|
|
|
</para>
|
|
|
|
|
|
@@ -231,10 +241,10 @@ foreach ($feed as $user) {
|
|
|
<title>Einen Benutzerzugang aktualisieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Der einfachste Weg um einen Benutzerzugang zu aktualisieren ist es den Benutzer wie in der
|
|
|
- vorherigen Sektion beschrieben zu empfangen, jegliche gewünschte Änderungen durchzuführen und
|
|
|
- anschließend <code>save()</code> auf diesem Benutzer aufzurufen. Jede gemachte Änderung wird
|
|
|
- an den Server weitergegeben.
|
|
|
+ Der einfachste Weg um einen Benutzerzugang zu aktualisieren ist es den Benutzer wie
|
|
|
+ in der vorherigen Sektion beschrieben zu empfangen, jegliche gewünschte Änderungen
|
|
|
+ durchzuführen und anschließend <code>save()</code> auf diesem Benutzer aufzurufen.
|
|
|
+ Jede gemachte Änderung wird an den Server weitergegeben.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -259,9 +269,9 @@ $user = $user->save();
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Es ist zu beachten das es nicht möglich ist ein Passwort auf diesem Weg wiederherzustellen da
|
|
|
- gespeicherte Passwörter aus Sicherheitsgründern nicht über die Provisionierungs API
|
|
|
- verfügbar gemacht werden.
|
|
|
+ Es ist zu beachten das es nicht möglich ist ein Passwort auf diesem Weg
|
|
|
+ wiederherzustellen da gespeicherte Passwörter aus Sicherheitsgründern nicht über
|
|
|
+ die Provisionierungs API verfügbar gemacht werden.
|
|
|
</para>
|
|
|
|
|
|
</sect4>
|
|
|
@@ -270,9 +280,9 @@ $user = $user->save();
|
|
|
<title>Einen Benutzer zwingen sein Passwort zu ändern</title>
|
|
|
|
|
|
<para>
|
|
|
- Ein Benutzer kann dazu gezwungen werden sein Passwort bei seinem nächsten Login zu ändern,
|
|
|
- indem die <code>login->changePasswordAtNextLogin</code> Eigenschaft auf <code>true</code>
|
|
|
- gesetzt wird.
|
|
|
+ Ein Benutzer kann dazu gezwungen werden sein Passwort bei seinem nächsten Login
|
|
|
+ zu ändern, indem die <code>login->changePasswordAtNextLogin</code> Eigenschaft
|
|
|
+ auf <code>true</code> gesetzt wird.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -283,7 +293,8 @@ $user = $user->save();
|
|
|
|
|
|
<para>
|
|
|
Genauso kann das rückgängig gemacht werden indem die
|
|
|
- <code>login->changePasswordAtNextLogin</code> Eigenschaft auf <code>false</code> gesetzt wird.
|
|
|
+ <code>login->changePasswordAtNextLogin</code> Eigenschaft auf <code>false</code>
|
|
|
+ gesetzt wird.
|
|
|
</para>
|
|
|
|
|
|
</sect4>
|
|
|
@@ -292,10 +303,11 @@ $user = $user->save();
|
|
|
<title>Einen Benutzerzugang unterbrechen</title>
|
|
|
|
|
|
<para>
|
|
|
- Benutzer können daran gehindert werden sich anzumelden ohne das Ihr Benutzerzugang
|
|
|
- gelöscht wird indem Ihr Benutzerzugang <emphasis>unterbrochen</emphasis> wird. Zugänge
|
|
|
- können unterbrochen oder wiederhergestellt werden indem die einfachen
|
|
|
- <code>suspendUser()</code> und <code>restoreUser()</code> Methoden verwendet werden:
|
|
|
+ Benutzer können daran gehindert werden sich anzumelden ohne das Ihr
|
|
|
+ Benutzerzugang gelöscht wird indem Ihr Benutzerzugang
|
|
|
+ <emphasis>unterbrochen</emphasis> wird. Zugänge können unterbrochen oder
|
|
|
+ wiederhergestellt werden indem die einfachen <code>suspendUser()</code> und
|
|
|
+ <code>restoreUser()</code> Methoden verwendet werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -304,8 +316,8 @@ $gdata->restoreUser('foo');
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann die Eigenschaft <code>login->suspended</code> des Benutzerzugangs auf
|
|
|
- <code>true</code> gesetzt werden.
|
|
|
+ Alternativ kann die Eigenschaft <code>login->suspended</code> des
|
|
|
+ Benutzerzugangs auf <code>true</code> gesetzt werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -315,8 +327,8 @@ $user = $user->save();
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Um den Benutzerzugang wiederherzustellen muß die <code>login->suspended</code> Eigenschaft
|
|
|
- auf <code>false</code> gesetzt werden.
|
|
|
+ Um den Benutzerzugang wiederherzustellen muß die <code>login->suspended</code>
|
|
|
+ Eigenschaft auf <code>false</code> gesetzt werden.
|
|
|
</para>
|
|
|
|
|
|
</sect4>
|
|
|
@@ -325,8 +337,8 @@ $user = $user->save();
|
|
|
<title>Administrative Rechte vergeben</title>
|
|
|
|
|
|
<para>
|
|
|
- Benutzern kann die Möglichkeit gegeben werden die Domain zu verwalten durch das setzen
|
|
|
- Ihrer <code>login->admin</code> Eigenschaft auf <code>true</code>.
|
|
|
+ Benutzern kann die Möglichkeit gegeben werden die Domain zu verwalten durch das
|
|
|
+ setzen Ihrer <code>login->admin</code> Eigenschaft auf <code>true</code>.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -336,8 +348,8 @@ $user = $user->save();
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Und wie erwartet, entfernt das Setzen der Eigenschaft <code>login->admin</code>, des
|
|
|
- Benutzers auf <code>false</code>, dessen administrative Rechte.
|
|
|
+ Und wie erwartet, entfernt das Setzen der Eigenschaft <code>login->admin</code>,
|
|
|
+ des Benutzers auf <code>false</code>, dessen administrative Rechte.
|
|
|
</para>
|
|
|
|
|
|
</sect4>
|
|
|
@@ -348,8 +360,8 @@ $user = $user->save();
|
|
|
<title>Löschen eines Benutzerzugangs</title>
|
|
|
|
|
|
<para>
|
|
|
- Einen Benutzerzugang zu löschen zu dem man bereits ein UserEntry hat, ist so einfach wie der
|
|
|
- Aufruf von <code>delete()</code> auf diesem Eintrag.
|
|
|
+ Einen Benutzerzugang zu löschen zu dem man bereits ein UserEntry hat, ist so einfach
|
|
|
+ wie der Aufruf von <code>delete()</code> auf diesem Eintrag.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -358,8 +370,8 @@ $user->delete();
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Wenn man keinen Zugriff auf ein UserEntry Objekt für einen Zugang hat, kann die einfache
|
|
|
- <code>deleteUser()</code> Methode verwendet werden.
|
|
|
+ Wenn man keinen Zugriff auf ein UserEntry Objekt für einen Zugang hat, kann die
|
|
|
+ einfache <code>deleteUser()</code> Methode verwendet werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -374,21 +386,23 @@ $gdata->deleteUser('foo');
|
|
|
<title>Mit Spitznamen interagieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Spitznamen arbeiten als Email Aliase für bestehende Benutzer. Jeder Spitzname enthält genau zwei
|
|
|
- Schlüsseleigenschaften: Seinen Namen und seinen Eigentümer. Jede Email die zu einem Spitznamen
|
|
|
- adressiert wurde wird zu dem Benutzer weitergeleitet der diesen Spitznamen besitzt.
|
|
|
+ Spitznamen arbeiten als Email Aliase für bestehende Benutzer. Jeder Spitzname enthält
|
|
|
+ genau zwei Schlüsseleigenschaften: Seinen Namen und seinen Eigentümer. Jede Email die zu
|
|
|
+ einem Spitznamen adressiert wurde wird zu dem Benutzer weitergeleitet der diesen
|
|
|
+ Spitznamen besitzt.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Spitznamen werden repräsentiert als Instanz von <classname>Zend_Gdata_Gapps_NicknameEntry</classname>.
|
|
|
+ Spitznamen werden repräsentiert als Instanz von
|
|
|
+ <classname>Zend_Gdata_Gapps_NicknameEntry</classname>.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.gdata.gapps.nicknames.creating">
|
|
|
<title>Erstellen eines Spitznamens</title>
|
|
|
|
|
|
<para>
|
|
|
- Spitznamen können durch den Aufruf der einfachen <code>createNickname()</code> Methode
|
|
|
- erstellt werden:
|
|
|
+ Spitznamen können durch den Aufruf der einfachen <code>createNickname()</code>
|
|
|
+ Methode erstellt werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -396,10 +410,10 @@ $gdata->createNickname('foo', 'bar');
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Spitznamen können auch durch das instanzieren eines NichnameEntry erstellt werden, wobei der
|
|
|
- Spitzname mit einem Namen und einem Eigentümer ausgestattet wird, und dann
|
|
|
- <code>insertNickname()</code> auf einem Service Objekt aufgerufen wird, um den Eintrag zu einem
|
|
|
- Server hochzuladen.
|
|
|
+ Spitznamen können auch durch das instanzieren eines NichnameEntry erstellt werden,
|
|
|
+ wobei der Spitzname mit einem Namen und einem Eigentümer ausgestattet wird, und dann
|
|
|
+ <code>insertNickname()</code> auf einem Service Objekt aufgerufen wird, um den
|
|
|
+ Eintrag zu einem Server hochzuladen.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -415,8 +429,9 @@ $nickname = $gdata->insertNickname($nickname);
|
|
|
<title>Einen Spitznamen empfangen</title>
|
|
|
|
|
|
<para>
|
|
|
- Spitznamen können durch den Aufruf der bequemen <code>retrieveNickname()</code> Methode
|
|
|
- empfangen werden. Sie gibt <code>null</code> zurück wenn der Benutzer nicht gefunden wurde.
|
|
|
+ Spitznamen können durch den Aufruf der bequemen <code>retrieveNickname()</code>
|
|
|
+ Methode empfangen werden. Sie gibt <code>null</code> zurück wenn der Benutzer nicht
|
|
|
+ gefunden wurde.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -427,9 +442,10 @@ echo 'Eigentümer: ' . $nickname->login->username . "\n";
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Individuelle Spitznamen können durch Erstellung einer <classname>Zend_Gdata_Gapps_NicknameQuery</classname> Instanz
|
|
|
- erhalten werden, indem dessen nickname Eigenschaft dem Spitznamen gleichgesetzt wird der
|
|
|
- empfangen werden soll, und <code>getNicknameEntry()</code> auf einem Server Objekt mit dieser
|
|
|
+ Individuelle Spitznamen können durch Erstellung einer
|
|
|
+ <classname>Zend_Gdata_Gapps_NicknameQuery</classname> Instanz erhalten werden, indem
|
|
|
+ dessen nickname Eigenschaft dem Spitznamen gleichgesetzt wird der empfangen werden
|
|
|
+ soll, und <code>getNicknameEntry()</code> auf einem Server Objekt mit dieser
|
|
|
Abfrage aufgerufen wird.
|
|
|
</para>
|
|
|
|
|
|
@@ -442,9 +458,10 @@ echo 'Eigentümer: ' . $nickname->login->username . "\n";
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Genau wie bei den Benutzern wird eine ServiceException geworfen wenn kein entsprechender
|
|
|
- Spitzname gefunden wurde und ein Fehlercode von <classname>Zend_Gdata_Gapps_Error::ENTITY_DOES_NOT_EXIST</classname>
|
|
|
- zurückgegeben. Auch das wird in <xref linkend="zend.gdata.gapps.exceptions" /> beschrieben.
|
|
|
+ Genau wie bei den Benutzern wird eine ServiceException geworfen wenn kein
|
|
|
+ entsprechender Spitzname gefunden wurde und ein Fehlercode von
|
|
|
+ <classname>Zend_Gdata_Gapps_Error::ENTITY_DOES_NOT_EXIST</classname> zurückgegeben.
|
|
|
+ Auch das wird in <xref linkend="zend.gdata.gapps.exceptions" /> beschrieben.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -453,8 +470,8 @@ echo 'Eigentümer: ' . $nickname->login->username . "\n";
|
|
|
<title>Alle Spitznamen eines Benutzers erhalten</title>
|
|
|
|
|
|
<para>
|
|
|
- Um alle Spitznamen zu erhalten die einem angegebenen Benutzer assoziiert sind, kann die
|
|
|
- bequeme <code>retrieveNicknames()</code> Methode aufgerufen werden.
|
|
|
+ Um alle Spitznamen zu erhalten die einem angegebenen Benutzer assoziiert sind, kann
|
|
|
+ die bequeme <code>retrieveNicknames()</code> Methode aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -466,13 +483,14 @@ foreach ($feed as $nickname) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das erzeugt ein <classname>Zend_Gdata_Gapps_NicknameFeed</classname> Objekt welches jeden mit dem spezifizierten
|
|
|
- Benutzer assoziierten Spitznamen enthält.
|
|
|
+ Das erzeugt ein <classname>Zend_Gdata_Gapps_NicknameFeed</classname> Objekt welches
|
|
|
+ jeden mit dem spezifizierten Benutzer assoziierten Spitznamen enthält.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ setzt das Erstellen einer neuen <classname>Zend_Gdata_Gapps_NicknameQuery</classname> dessen username
|
|
|
- Eigenschaft auf den gewünschten Benutzer, und überträgt die Abfrage durch den Aufruf von
|
|
|
+ Alternativ setzt das Erstellen einer neuen
|
|
|
+ <classname>Zend_Gdata_Gapps_NicknameQuery</classname> dessen username Eigenschaft
|
|
|
+ auf den gewünschten Benutzer, und überträgt die Abfrage durch den Aufruf von
|
|
|
<code>getNicknameFeed()</code> auf dem Service Objekt.
|
|
|
</para>
|
|
|
|
|
|
@@ -505,13 +523,13 @@ foreach ($feed as $nickname) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das wird ein <classname>Zend_Gdata_Gapps_NicknameFeed</classname> Objekt erstellen welches jeden Spitznamen in der
|
|
|
- Domain enthält.
|
|
|
+ Das wird ein <classname>Zend_Gdata_Gapps_NicknameFeed</classname> Objekt erstellen
|
|
|
+ welches jeden Spitznamen in der Domain enthält.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann <code>getNicknameFeed()</code> auf einem Service Objekt ohne Argumente aufgerufen
|
|
|
- werden.
|
|
|
+ Alternativ kann <code>getNicknameFeed()</code> auf einem Service Objekt ohne
|
|
|
+ Argumente aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -529,8 +547,8 @@ foreach ($feed as $nickname) {
|
|
|
<title>Löschen eines Spitznamens</title>
|
|
|
|
|
|
<para>
|
|
|
- Um einen Spitznamen zu löschen zu dem man bereits einen NicknameEntry hält muß einfach nur
|
|
|
- <code>delete()</code> auf diesem Eintrag aufgerufen werden.
|
|
|
+ Um einen Spitznamen zu löschen zu dem man bereits einen NicknameEntry hält muß
|
|
|
+ einfach nur <code>delete()</code> auf diesem Eintrag aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -555,21 +573,23 @@ $gdata->deleteNickname('bar');
|
|
|
<title>Mit Email Listen interagieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Email Listen erlauben verschiedenen Benutzern Emails zu empfangen die zu einer einzelnen Email
|
|
|
- Adresse adressiert sind. Benutzer müssen keine Teilnehmer dieser Domain sein um sich in eine
|
|
|
- Email Liste einzuschreiben, wen deren komplette Email Adresse (inklusive Domain) verwendet wird.
|
|
|
+ Email Listen erlauben verschiedenen Benutzern Emails zu empfangen die zu einer einzelnen
|
|
|
+ Email Adresse adressiert sind. Benutzer müssen keine Teilnehmer dieser Domain sein um
|
|
|
+ sich in eine Email Liste einzuschreiben, wen deren komplette Email Adresse (inklusive
|
|
|
+ Domain) verwendet wird.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Jede Email Liste einer Domain wird als Instanz von <classname>Zend_Gdata_Gapps_EmailListEntry</classname> repräsentiert.
|
|
|
+ Jede Email Liste einer Domain wird als Instanz von
|
|
|
+ <classname>Zend_Gdata_Gapps_EmailListEntry</classname> repräsentiert.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.gdata.gapps.emailLists.creating">
|
|
|
<title>Erstellen einer Email Liste</title>
|
|
|
|
|
|
<para>
|
|
|
- Email Listen können durch den Aufruf der bequemen <code>createEmailList()</code> Methode
|
|
|
- erstellt werden:
|
|
|
+ Email Listen können durch den Aufruf der bequemen <code>createEmailList()</code>
|
|
|
+ Methode erstellt werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -577,9 +597,10 @@ $gdata->createEmailList('friends');
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Email Listen können auch durch die Instanzierung von EmailListEntry erstellt werden, indem
|
|
|
- ein Name für die Liste angegeben wird, und anschließend <code>insertEmailList()</code> auf
|
|
|
- dem Service Objekt aufgerufen wird um den Eintrag zum Server hochzuladen.
|
|
|
+ Email Listen können auch durch die Instanzierung von EmailListEntry erstellt werden,
|
|
|
+ indem ein Name für die Liste angegeben wird, und anschließend
|
|
|
+ <code>insertEmailList()</code> auf dem Service Objekt aufgerufen wird um den Eintrag
|
|
|
+ zum Server hochzuladen.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -594,8 +615,9 @@ $list = $gdata->insertEmailList($list);
|
|
|
<title>Empfangen aller Email Listen bei denen ein Empfänger eingeschrieben ist</title>
|
|
|
|
|
|
<para>
|
|
|
- Um alle Email Lsiten zu denen ein spezieller Empfänger eingeschrieben ist zu empfangen, muß die
|
|
|
- bequeme <code>retrieveEmailLists()</code> Methode aufgerufen werden:
|
|
|
+ Um alle Email Lsiten zu denen ein spezieller Empfänger eingeschrieben ist zu
|
|
|
+ empfangen, muß die bequeme <code>retrieveEmailLists()</code> Methode aufgerufen
|
|
|
+ werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -607,14 +629,15 @@ foreach ($feed as $list) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das erstellt ein <classname>Zend_Gdata_Gapps_EmailListFeed</classname> Objekt welches jede Email Liste enthält die
|
|
|
- mit dem speziellen Empfänger assoziiert ist.
|
|
|
+ Das erstellt ein <classname>Zend_Gdata_Gapps_EmailListFeed</classname> Objekt
|
|
|
+ welches jede Email Liste enthält die mit dem speziellen Empfänger assoziiert ist.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann ein neues <classname>Zend_Gdata_Gapps_EmailListQuery</classname> erstellt werden, dessen recipient
|
|
|
- Eigenschaft auf die gewünschte Email Adresse gesetzt werden, und die Abfrage durch den Aufruf
|
|
|
- von <code>getEmailListFeed()</code> auf dem Service Objekt übermittelt werden.
|
|
|
+ Alternativ kann ein neues <classname>Zend_Gdata_Gapps_EmailListQuery</classname>
|
|
|
+ erstellt werden, dessen recipient Eigenschaft auf die gewünschte Email Adresse
|
|
|
+ gesetzt werden, und die Abfrage durch den Aufruf von <code>getEmailListFeed()</code>
|
|
|
+ auf dem Service Objekt übermittelt werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -646,13 +669,13 @@ foreach ($feed as $list) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das erzeugt ein <classname>Zend_Gdata_Gapps_EmailListFeed</classname> Objekt welches jede Email Liste der Domain
|
|
|
- enthält.
|
|
|
+ Das erzeugt ein <classname>Zend_Gdata_Gapps_EmailListFeed</classname> Objekt welches
|
|
|
+ jede Email Liste der Domain enthält.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann <code>getEmailListFeed()</code> auf dem Service Objekt ohne Argumente aufgerufen
|
|
|
- werden.
|
|
|
+ Alternativ kann <code>getEmailListFeed()</code> auf dem Service Objekt ohne
|
|
|
+ Argumente aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -669,7 +692,8 @@ foreach ($feed as $list) {
|
|
|
<title>Löschen einer Email Liste</title>
|
|
|
|
|
|
<para>
|
|
|
- Um eine Email Liste zu löschen, muß die bequeme deleteEmailList() Methode aufgerufen werden:
|
|
|
+ Um eine Email Liste zu löschen, muß die bequeme deleteEmailList() Methode aufgerufen
|
|
|
+ werden:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -684,9 +708,10 @@ $gdata->deleteEmailList('friends');
|
|
|
<title>Mit den Empfängern von Email Listen interagieren</title>
|
|
|
|
|
|
<para>
|
|
|
- Jeder Empfänger der bei einer Email Liste eingeschrieben ist, wird durch eine Instanz von
|
|
|
- <classname>Zend_Gdata_Gapps_EmailListRecipient</classname> repräsentiert. Durch diese Klasse können individuelle
|
|
|
- Empfänger hinzugefügt und von Email Listen entfernt werden.
|
|
|
+ Jeder Empfänger der bei einer Email Liste eingeschrieben ist, wird durch eine Instanz
|
|
|
+ von <classname>Zend_Gdata_Gapps_EmailListRecipient</classname> repräsentiert. Durch
|
|
|
+ diese Klasse können individuelle Empfänger hinzugefügt und von Email Listen entfernt
|
|
|
+ werden.
|
|
|
</para>
|
|
|
|
|
|
<sect3 id="zend.gdata.gapps.emailListRecipients.adding">
|
|
|
@@ -707,8 +732,8 @@ $gdata->addRecipientToEmailList('bar@somewhere.com', 'friends');
|
|
|
<title>Eine Liste von Empfängern einer Email Liste erhalten</title>
|
|
|
|
|
|
<para>
|
|
|
- Die bequeme <code>retrieveAllRecipients()</code> Methode kann verwendet werden um die Liste
|
|
|
- der Empfänger einer Email Liste zu erhalten:
|
|
|
+ Die bequeme <code>retrieveAllRecipients()</code> Methode kann verwendet werden um
|
|
|
+ die Liste der Empfänger einer Email Liste zu erhalten:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
@@ -720,8 +745,8 @@ foreach ($feed as $recipient) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Alternativ kann ein neuer EmailListRecipientQuery erstellt werdne, dessen emailListName
|
|
|
- Eigenschaft auf die gewünschte Email Liste gesetzt werden, und
|
|
|
+ Alternativ kann ein neuer EmailListRecipientQuery erstellt werdne, dessen
|
|
|
+ emailListName Eigenschaft auf die gewünschte Email Liste gesetzt werden, und
|
|
|
<code>getEmailListRecipientFeed()</code> auf dem Service Objekt aufgerufen werden.
|
|
|
</para>
|
|
|
|
|
|
@@ -736,8 +761,8 @@ foreach ($feed as $recipient) {
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Das Erstellt ein <classname>Zend_Gdata_Gapps_EmailListRecipientFeed</classname> Objekt welche jeden Empfänger für die
|
|
|
- ausgewählte Email Liste enthält.
|
|
|
+ Das Erstellt ein <classname>Zend_Gdata_Gapps_EmailListRecipientFeed</classname>
|
|
|
+ Objekt welche jeden Empfänger für die ausgewählte Email Liste enthält.
|
|
|
</para>
|
|
|
|
|
|
</sect3>
|
|
|
@@ -763,32 +788,34 @@ $gdata->removeRecipientFromEmailList('baz@somewhere.com', 'friends');
|
|
|
<title>Fehler handhaben</title>
|
|
|
|
|
|
<para>
|
|
|
- Zusätzlich zur Standardsuite von Ausnahmen die von <classname>Zend_Gdata</classname> geworfen werden, können Anfragen die
|
|
|
- die Provisionierungs API verwenden auch eine <classname>Zend_Gdata_Gapps_ServiceException</classname>
|
|
|
- werfen. Diese Ausnahme zeigt das ein API spezieller Fehler aufgetreten ist welche verhindert das
|
|
|
- die Anfrage fertiggestellt werden kann.
|
|
|
+ Zusätzlich zur Standardsuite von Ausnahmen die von <classname>Zend_Gdata</classname>
|
|
|
+ geworfen werden, können Anfragen die die Provisionierungs API verwenden auch eine
|
|
|
+ <classname>Zend_Gdata_Gapps_ServiceException</classname> werfen. Diese Ausnahme zeigt
|
|
|
+ das ein API spezieller Fehler aufgetreten ist welche verhindert das die Anfrage
|
|
|
+ fertiggestellt werden kann.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Jede ServiceException Instanz kann einen oder mehrere Fehler Objekte enthalten. Jedes dieser
|
|
|
- Objekte enthalten einen Fehlercode, Grund und (optional) die Eingave welche die Ausnahme
|
|
|
- getriggert hat. Eine komplette Liste von bekannten Fehlercodes wird in der Zend Framework API
|
|
|
- Dokumentation unter <classname>Zend_Gdata_Gapps_Error</classname> angeboten. Zusätzlich ist die maßgebliche
|
|
|
- Fehlerliste online unter <ulink
|
|
|
- url="http://code.google.com/apis/apps/gdata_provisioning_api_v2.0_reference.html#appendix_d">Google
|
|
|
- Apps Provisioning API V2.0 Reference: Appendix D</ulink> vorhanden.
|
|
|
+ Jede ServiceException Instanz kann einen oder mehrere Fehler Objekte enthalten. Jedes
|
|
|
+ dieser Objekte enthalten einen Fehlercode, Grund und (optional) die Eingave welche die
|
|
|
+ Ausnahme getriggert hat. Eine komplette Liste von bekannten Fehlercodes wird in der Zend
|
|
|
+ Framework API Dokumentation unter <classname>Zend_Gdata_Gapps_Error</classname>
|
|
|
+ angeboten. Zusätzlich ist die maßgebliche Fehlerliste online unter <ulink
|
|
|
+ url="http://code.google.com/apis/apps/gdata_provisioning_api_v2.0_reference.html#appendix_d">Google
|
|
|
+ Apps Provisioning API V2.0 Reference: Appendix D</ulink> vorhanden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Wärend die komplette Liste von Fehler die empfangen wurden in ServiceException als Array vorhanden
|
|
|
- sind das man durch den Aufruf von <code>getErrors()</code> erhalten kann, ist es oft bequemer
|
|
|
- zu wissen ob ein spezieller Fehler aufgetreten ist. Für diese Fälle kann das Vorhandensein eines
|
|
|
- Fehler durch den Aufruf von <code>hasError()</code> erkannt werden.
|
|
|
+ Wärend die komplette Liste von Fehler die empfangen wurden in ServiceException als Array
|
|
|
+ vorhanden sind das man durch den Aufruf von <code>getErrors()</code> erhalten kann, ist
|
|
|
+ es oft bequemer zu wissen ob ein spezieller Fehler aufgetreten ist. Für diese Fälle kann
|
|
|
+ das Vorhandensein eines Fehler durch den Aufruf von <code>hasError()</code> erkannt
|
|
|
+ werden.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Das folgende Beispiel demonstriert wie erkannt werden kann ob eine angefragte Ressource nicht
|
|
|
- existiert und der Fehler korrekt behandelt werden kann:
|
|
|
+ Das folgende Beispiel demonstriert wie erkannt werden kann ob eine angefragte Ressource
|
|
|
+ nicht existiert und der Fehler korrekt behandelt werden kann:
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|