Best Practices

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:

  1. 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
  2. Um auf Nutzerdaten zuzugreifen, fordert die Anwendung bei Google eine Zugriffsumfangs definiert.
  3. Google zeigt dem Nutzer einen Zustimmungsbildschirm an, auf dem er aufgefordert wird, die um einige ihrer Daten anzufordern.
  4. Wenn der Nutzer zustimmt, erhält die Anwendung von Google ein Zugriffstoken. das nach kurzer Zeit abläuft.
  5. Die Anwendung fordert die Nutzerdaten an und hängt das Zugriffstoken an. zur Anfrage hinzufügen.
  6. 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.