Autorisierung
Alle Anfragen an die Google Photos Library API müssen von einem authentifizierten Nutzer autorisiert werden.
Die Details des Autorisierungsprozesses für OAuth 2.0 variieren je nach für welche Art von Anwendung Sie schreiben. Gehen Sie wie folgt vor, gilt für alle Anwendungstypen:
- So bereiten Sie sich auf das Autorisierungsverfahren vor:
<ph type="x-smartling-placeholder">
- </ph>
- Registrieren Sie Ihre Anwendung mithilfe der Google API Console:
- Aktivieren Sie die Library API und rufen Sie OAuth-Details wie den folgenden ab: Client-ID und einen Clientschlüssel. Weitere Informationen finden Sie unter Jetzt starten
- Um auf Nutzerdaten zuzugreifen, fordert die Anwendung bei Google eine Zugriffsumfangs definiert.
- Google zeigt dem Nutzer einen Zustimmungsbildschirm an, auf dem er aufgefordert wird, die um einige ihrer Daten anzufordern.
- Wenn der Nutzer zustimmt, erhält die Anwendung von Google ein Zugriffstoken. das nach kurzer Zeit abläuft.
- Die Anwendung fordert die Nutzerdaten an und hängt das Zugriffstoken an. zur Anfrage hinzufügen.
- Wenn Google feststellt, dass die Anfrage und das Token gültig sind, gibt Google den Fehlerwert die angeforderten Daten.
Informationen zum Bestimmen, welche Bereiche für Ihre Anwendung geeignet sind, finden Sie unter Autorisierung Bereiche.
Bei einigen Anwendungstypen sind zusätzliche Schritte erforderlich, wie z. B. Aktualisierungstokens, um neue Zugriffstokens zu erhalten. Detaillierte Informationen über siehe OAuth 2.0 für den Zugriff auf Google verwenden APIs
Caching
Halten Sie die Daten aktuell.
Wenn Sie Medien wie Miniaturansichten, Fotos oder Videos vorübergehend speichern müssen Aus Leistungsgründen sollten Sie ihn gemäß unserer Nutzung nicht länger als 60 Minuten im Cache speichern. .
Außerdem sollten Sie keine baseUrls
speichern, die nach ungefähr 60 Tagen ablaufen
Minuten.
Medienelement-IDs und Album-IDs, die Inhalte in der Mediathek eines Nutzers eindeutig identifizieren sind von der Caching-Einschränkung ausgenommen. Sie können diese IDs unbegrenzt speichern (unterliegt der Datenschutzerklärung Ihrer Anwendung). Mediaelement-IDs und Album-IDs verwenden um zugängliche URLs und Daten mithilfe der entsprechenden Endpunkte erneut abzurufen. Für Weitere Informationen finden Sie unter Medien abrufen item oder Listing Alben.
Wenn viele Medienelemente aktualisiert werden müssen, ist es möglicherweise effizienter, das Element Suchparameter, die die Medienelemente zurückgegeben haben, und senden die Abfrage erneut, um sie neu zu laden. Daten.
SSL-Zugriff
HTTPS ist für alle Library API-Webdienstanfragen erforderlich, die die Methode folgende URL:
https://photoslibrary.googleapis.com/v1/service/output?parameters
Anfragen über HTTP werden abgelehnt.
Fehlerbehandlung
Informationen zum Umgang mit von der API zurückgegebenen Fehlern finden Sie in der Cloud Handhabung von APIs Fehler.
Fehlgeschlagene Anfragen wiederholen
Clients sollten den Versuch nach 5xx
-Fehlern mit exponentiellem Backoff wiederholen, wie unter
Exponentieller Backoff. Die minimale Verspätung sollte 1 s
betragen
sofern nicht anders angegeben.
Bei 429
-Fehlern kann der Client den Vorgang mit einer minimalen Verzögerung von 30s
wiederholen. Für alle anderen
Fehler, ist „Wiederholen“ möglicherweise nicht möglich. Stellen Sie sicher, dass Ihre Anfrage idempotent ist, und lesen Sie
in der Fehlermeldung.
Exponentielle Backoffs
In seltenen Fällen kann bei der Verarbeitung Ihrer Anfrage ein Fehler auftreten.Möglicherweise erhalten Sie
4XX
oder 5XX
HTTP-Antwortcode, oder die TCP-Verbindung schlägt irgendwo fehl
zwischen Ihrem Client und dem Google-Server. Häufig lohnt es sich,
Die Folgeanfrage ist möglicherweise erfolgreich, wenn die ursprüngliche Anfrage fehlgeschlagen ist. Sie können jedoch
Es ist wichtig, keine wiederholten
Anfragen an die Server von Google in einer Schleife auszuführen. Dieses
Verhaltensschleifen können das Netzwerk zwischen Ihrem Client und Google überlasten.
zu Problemen für viele Beteiligte führen.
Ein besserer Ansatz ist es, wiederholte Versuche in immer größeren Abständen durchzuführen. Normalerweise wird die Verzögerung bei jedem Versuch um einen multiplikativen Faktor erhöht, ein Ansatz, bekannt als Exponentiell Backoff.
Sie sollten auch darauf achten, dass sich in der App an der Stelle weiter oben kein Wiederholungscode befindet. Aufrufkette, die schnell hintereinander zu wiederholten Anfragen führt.
Höfliche Verwendung von Google APIs
Schlecht konzipierte API-Clients können sowohl die im Internet und auf den Google-Servern. Dieser Abschnitt enthält einige Best Practices für Clients der APIs. Mit diesen Best Practices können Sie Anwendung aufgrund von unbeabsichtigtem Missbrauch der APIs blockiert wird.
Synchronisierte Anfragen
Eine große Anzahl synchronisierter Anfragen an die APIs von Google kann wie eine DDoS-Angriff (Distributed Denial of Service) auf die Google-Infrastruktur behandelt werden. Um dies zu vermeiden, sollten Sie sicherstellen, dass API-Anfragen nicht zwischen Clients synchronisiert.
Angenommen, eine Anwendung zeigt die Zeit in der aktuellen Uhrzeit an. . Diese App löst wahrscheinlich einen Alarm im Betriebssystem des Clients aus und es zu Beginn der Minute geweckt wird, damit die angezeigte Zeit aktualisiert. Die Anwendung sollte im Rahmen der Verarbeitung keine API-Aufrufe ausführen. die mit diesem Alarm verknüpft sind.
API-Aufrufe als Reaktion auf einen festen Alarm sind nicht sinnvoll, da die API-Aufrufe werden bis zum Anfang der Minute synchronisiert, auch zwischen verschiedenen Geräte und werden nicht gleichmäßig über den Zeitraum verteilt. Ein schlecht gestaltetes Anwendung, die dies tut, führt zu einer Trafficspitze, die sechzig mal normal ist zu Beginn jeder Minute.
Stattdessen empfiehlt es sich, bei einem guten Design einen zweiten Alarm ausgewählten Zeitpunkt. Wenn dieser zweite Alarm ausgelöst wird, sendet die Anwendung Aufrufe an alle APIs, die er benötigt, und die Ergebnisse speichert. Um die Anzeige zu Beginn des Minute verwendet die Anwendung zuvor gespeicherte Ergebnisse, anstatt den API noch einmal ein. Bei dieser Vorgehensweise werden API-Aufrufe gleichmäßig über eine Zeitspanne hinweg verteilt. Außerdem Die API-Aufrufe verzögern das Rendering nicht, wenn die Anzeige aktualisiert wird.
Abgesehen vom Beginn der Minute können Sie weitere gängige Synchronisierungszeiten sollten Sie darauf achten, dass die Ausrichtung nicht auf den Beginn einer Stunde und jeden Tag um Mitternacht.