2017-07-26 26 views
0

ユーザーのGoogleドライブの変更を検出するためのチャンネルを設定しました。この部分は正常に動作し、変更が発生するたびに私のサーバーにPOSTが送られます。例:Googleドライブの変更API - IDとファイルIDの変更が無効です

{ kind: 'drive#change', 
    id: '238', 
    selfLink: 'https://www.googleapis.com/drive/v2/changes/238' } 

ただし、そのPOSTで取得するデータは無効であると思われます。 POSTの変更IDは、常に実際のIDとは異なるようです。上記の例では、ID 238を取得しようとすると、応答が '見つかりません'です。しかし、それは私が237

を使用する場合、他の紛らわしいものは、ファイルIDで動作します。

How to get ID of changed file on Google Drive - この答えは、ファイルIDがヘッダーX-Goog-Resource-IDであると述べています。ただし、上記と同様、このIDは実際のファイルIDと決して一致しません。

誰かがここで何が起こっているのか明確にすることはできますか?私は何か不足していますか?

答えて

0

ユーザードライブのすべての変更を監視するときにChanges: watchを使用している場合、リクエスト本体に返されるidは、このチャネルを識別するUUIDまたは同様の一意の文字列です。

あなたはChanges: listを使用することにより変更に関連付けられているファイルの変更とIDのIDを取得することができます。この形式でHTTPリクエストを送信する:(changeIdfileIdは含まれません)以下は、供給することができるよりも

GET https://www.googleapis.com/drive/v2/changes 

オプションのIDパラメータ:

  • startChangeId変更IDをからの変更をリスト開始します。
  • teamDriveIdチームドライブから変更が返されます。

成功した場合、このメソッドは、変更のidと変更するファイルのfileIdを含む応答本文を返します。サンプル構造は次のとおりです。

{ 
    "kind": "drive#changeList", 
    "etag": etag, 
    "selfLink": string, 
    "items": [ 
    { 
     "kind": "drive#change", 
     "id": long, 
     "type": string, 
     "fileId": string, 
     "file": files Resource 
    } 
    ] 
} 

詳細については、Detect Changesを参照してください。

関連する問題