ほとんどのアプリケーション シナリオでは、クライアントを Gmail と同期することが重要です。同期シナリオには、フル同期と部分同期の 2 つがあります。クライアントが Gmail に初めて接続するときや、その他のまれなシナリオでは、完全な同期が必要です。クライアントが最近同期している場合、部分同期はフル同期よりも軽量な代替手段です。プッシュ通知を使用して、必要な場合にのみリアルタイムで部分同期をトリガーし、不要なポーリングを回避することもできます。
目次
完全同期
アプリケーションが Gmail に初めて接続する場合、または部分同期が利用できない場合は、完全同期を実行する必要があります。完全同期オペレーションでは、アプリケーションは目的のために必要な数の最新のメッセージまたはスレッドを取得して保存する必要があります。たとえば、アプリで最近のメッセージのリストを表示する場合、ユーザーが最初に表示された数件のメッセージを超えてスクロールしたときに、応答性の高いインターフェースを実現するために十分な数のメッセージを取得してキャッシュに保存することが望ましいでしょう。完全同期オペレーションを実行する一般的な手順は次のとおりです。
messages.list
を呼び出して、メッセージ ID の最初のページを取得します。- リストリクエストによって返されたメッセージごとに、
messages.get
リクエストのバッチ リクエストを作成します。アプリケーションでメッセージの内容を表示する場合は、アプリケーションが初めてメッセージを取得するときにformat=FULL
またはformat=RAW
を使用し、結果をキャッシュに保存して、追加の取得オペレーションを回避する必要があります。以前にキャッシュに保存されたメッセージを取得する場合は、labelIds
のみが変更される可能性があるため、format=MINIMAL
を使用してレスポンスのサイズを削減する必要があります。 - 更新をキャッシュに保存されている結果に統合します。アプリケーションは、今後の部分同期のために、最新のメッセージの
historyId
(list
レスポンスの最初のメッセージ)を保存する必要があります。
部分同期
アプリケーションが最近同期された場合は、history.list
メソッドを使用して部分同期を実行し、リクエストで指定した startHistoryId
より新しいすべての履歴レコードを返すことができます。履歴レコードには、startHistoryId
以降のメッセージの追加、削除、ラベルの変更など、各メッセージのメッセージ ID と変更タイプが記録されます。完全同期または部分同期から最新のメッセージの historyId
を取得して保存し、今後の部分同期オペレーションの startHistoryId
として提供できます。
制限事項
通常、履歴レコードは 1 週間以上利用できます。ただし、記録が利用可能な期間は大幅に短くなる可能性があり、まれに記録が利用できないこともあります。クライアントから提供された startHistoryId
が利用可能な履歴レコードの範囲外にある場合、API は HTTP 404
エラー レスポンスを返します。この場合、クライアントは前のセクションで説明したように完全同期を行う必要があります。