クライアントを Gmail と同期する

ほとんどのアプリケーション シナリオでは、クライアントを Gmail と同期することが重要です。同期シナリオには、フル同期と部分同期の 2 つがあります。クライアントが Gmail に初めて接続するときや、その他のまれなシナリオでは、完全な同期が必要です。クライアントが最近同期している場合、部分同期はフル同期よりも軽量な代替手段です。プッシュ通知を使用して、必要な場合にのみリアルタイムで部分同期をトリガーし、不要なポーリングを回避することもできます。

目次

完全同期

アプリケーションが Gmail に初めて接続する場合、または部分同期が利用できない場合は、完全同期を実行する必要があります。完全同期オペレーションでは、アプリケーションは目的のために必要な数の最新のメッセージまたはスレッドを取得して保存する必要があります。たとえば、アプリで最近のメッセージのリストを表示する場合、ユーザーが最初に表示された数件のメッセージを超えてスクロールしたときに、応答性の高いインターフェースを実現するために十分な数のメッセージを取得してキャッシュに保存することが望ましいでしょう。完全同期オペレーションを実行する一般的な手順は次のとおりです。

  1. messages.list を呼び出して、メッセージ ID の最初のページを取得します。
  2. リストリクエストによって返されたメッセージごとに、messages.get リクエストのバッチ リクエストを作成します。アプリケーションでメッセージの内容を表示する場合は、アプリケーションが初めてメッセージを取得するときに format=FULL または format=RAW を使用し、結果をキャッシュに保存して、追加の取得オペレーションを回避する必要があります。以前にキャッシュに保存されたメッセージを取得する場合は、labelIds のみが変更される可能性があるため、format=MINIMAL を使用してレスポンスのサイズを削減する必要があります。
  3. 更新をキャッシュに保存されている結果に統合します。アプリケーションは、今後の部分同期のために、最新のメッセージの historyIdlist レスポンスの最初のメッセージ)を保存する必要があります。

部分同期

アプリケーションが最近同期された場合は、history.list メソッドを使用して部分同期を実行し、リクエストで指定した startHistoryId より新しいすべての履歴レコードを返すことができます。履歴レコードには、startHistoryId 以降のメッセージの追加、削除、ラベルの変更など、各メッセージのメッセージ ID と変更タイプが記録されます。完全同期または部分同期から最新のメッセージの historyId を取得して保存し、今後の部分同期オペレーションの startHistoryId として提供できます。

制限事項

通常、履歴レコードは 1 週間以上利用できます。ただし、記録が利用可能な期間は大幅に短くなる可能性があり、まれに記録が利用できないこともあります。クライアントから提供された startHistoryId が利用可能な履歴レコードの範囲外にある場合、API は HTTP 404 エラー レスポンスを返します。この場合、クライアントは前のセクションで説明したように完全同期を行う必要があります。