2017-12-19 30 views
1

私は購読時に同期メッセージを受け取っているのに、ファイルをアップロードするときに通知を受け取っていないので、すべてを正しく構成していると思います。GoogleドライブAPIから通知が届かないのはなぜですか?

私は次のことを行っている:

  • は単に要求が
  • エンドポイントは、有効な証明書
  • で固定されてDEVコンソールでGoogleドライブのAPIを有効に
  • を受けて出力作業のエンドポイントを持っています(有効なドメインに追加された)
  • オーナーの権利を持つサービスアカウントを作成しました。私が知っているが、これは問題ではないことを確認したいアクセス許可の問題)
  • https://www.googleapis.com/drive/v3/changes/watch

を使用して登録し、私は有効な購読応答を持って、自分のエンドポイントは、/時計にPOST後にメッセージが表示されましたが、私は、ドライブへの変更のいずれかの後には、通知(添加しませんまたはファイルを削除する)。

誰も私が正常に同期を取得したにもかかわらず通知を受け取っていない理由を知っていますか?

エンドポイントが受信したメッセージです。私がInsomnia RESTクライアントを使用して購読しているため、「起源」はそのようなものです。

{ 
"body": {}, 
"headers": { 
    "X-Goog-Resource-ID": "xxxxxxxxxxxxxxx", 
    "CloudFront-Viewer-Country": "US", 
    "X-Amzn-Trace-Id": "Root=xxxxxxxxxxxxxxx", 
    "X-Goog-Channel-Expiration": "Wed, 20 Dec 2017 01:39:47 GMT", 
    "CloudFront-Is-Desktop-Viewer": "true", 
    "CloudFront-Is-SmartTV-Viewer": "false", 
    "X-Goog-Resource-URI": "https://www.googleapis.com/drive/v3/changes?includeCorpusRemovals=false&includeRemoved=true&includeTeamDriveItems=false&pageSize=100&pageToken=6&restrictToMyDrive=false&spaces=drive&supportsTeamDrives=false&alt=json", 
    "User-Agent": "APIs-Google;(+https://developers.google.com/webmasters/APIs-Google.html)", 
    "Host": "services.xxxxxxxxxxxxxxx.com", 
    "CloudFront-Forwarded-Proto": "https", 
    "Accept-Encoding": "gzip,deflate,br", 
    "X-Forwarded-Port": "443", 
    "X-Amz-Cf-Id": "xxxxxxxxxxxxxxx==", 
    "CloudFront-Is-Tablet-Viewer": "false", 
    "X-Goog-Resource-State": "sync", 
    "Via": "1.1 xxxxxxxxxxxxxxx.cloudfront.net (CloudFront)", 
    "X-Forwarded-For": "66.102.7.129, 52.46.30.57", 
    "Accept": "*/*", 
    "X-Forwarded-Proto": "https", 
    "X-Goog-Channel-ID": "test-drive-file-notification", 
    "CloudFront-Is-Mobile-Viewer": "false", 
    "X-Goog-Message-Number": "1" 
    } 
} 
+0

アクティビティを示すダッシュボード以外にも、Google APIアクティビティのログはありますか? – Clara

+0

[ドライブプッシュ通知](https://developers.google.com/drive/v3/web/push)に記載されているようにウェブフックを設定しましたか? – noogui

+0

@nooguiにコメントしていただきありがとうございます!はい、私はしました。それは私が上記を参照していたエンドポイントです。 私の問題は何だったのか分かりました。技術的なものではなく、アカウントに関連付けられたGoogleドライブへのアクセス権を持つ認証情報の作成を前提としています。これは、アカウント情報がドライブへのアクセスを偽装することを意味していました。それは間違っていることが判明しました。クリエイターのリストに、信任状のクライアント電子メールをフォルダに追加しても、通知は生成されません。私はそれらの資格情報を持つフォルダを作成し、自分のアカウントを追加してアクセスする必要がありました。その後、通知がストリーミングされ始めました。 – Clara

答えて

0

この質問は、しばらくは、Googleのデベロッパーコンソールで自分自身(GSuite組織に関連付けられていないアカウント)でログインしてGoogleドライブにアクセスして作成した資格情報は、資格情報がへの私のアクセスを偽装意味という誤った前提に基づいていましたドライブ。それは間違っていることが判明しました。

通知を受け取るソリューションは、(サービスアカウントが所有者である)これらの資格情報を持つフォルダを作成し、それにアクセスするために自分のアカウントを追加することでした。その後、通知がストリーミングを開始しました。