ウォッチチャンネルを停止すると、エラーで応答していませんが、一晩配信を許可しても停止しています。私はまだ1つのカレンダーリストの変更について5つの通知を受けています。ときどき6.時々3.散発的です。また、8秒後に同じアクションの通知を2回受け取ります。時々6秒。時にはランダムなカウントを持つ3番目のセット。また、散発的です。ウェブブラウザ経由で作成された1つのカレンダーに合計10個のユニークなメッセージを受信しました。GoogleカレンダーAPIウォッチチャンネルが停止していません
1
A
答えて
0
文書に記載されているChannels.stopを使用してください。リクエストのボディに次のデータを供給:
{
"id": string,
"resourceId": string
}
id
は、チャネルIDあなたcreated your watch requestです。リソースIDも同じです。
この詳細については、SO threadおよびthis github forumをお読みください。
0
特定のカレンダーリソースで無限の監視リクエストを実行できますが、Googleでは常に同じカレンダーの同じカレンダーリソースIDを返しますが、リクエストで生成するUuidは異なるため、あなたが作成したウォッチリクエストごとに複数の通知を受け取ります。特定のカレンダーリソースからすべての通知を停止する方法の1つは、通知をリスンし、通知ヘッダーから「x-goog-channel-id」および「x-goog-resource-id」を取り出し、Channels.stop要求で使用することです。 UUIDまたはリソースIDがすでに存在する場合、はい、再びそのリソースIDの時計の要求を実行しない場合
{
"id": string,
"resourceId": string
}
あなたは時計の要求を実行するたびに、あなたは(もし、応答からデータを永続化し、チェックする必要があります複数の通知を受け取ることは望ましくありません)。
app.post("/calendar/listen", async function (req, res) {
var pushNotification = req.headers;
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.end("Post recieved");
var userData = await dynamoDB.getSignInData(pushNotification["x-goog-channel-token"]).catch(function (err) {
console.log("Promise rejected: " + err);
});
if (!userData) {
console.log("User data not found in the database");
} else {
if (!userData.calendar) {
console.log("Calendar token not found in the user data object, can't perform Calendar API calls");
} else {
oauth2client.credentials = userData.calendar;
await calendarManager.stopWatching(oauth2client, pushNotification["x-goog-channel-id"], pushNotification["x-goog-resource-id"])
}
}
};
calendarManager.js
module.exports.stopWatching = function (oauth2client, channelId, resourceId) {
return new Promise(function (resolve, reject) {
calendar.channels.stop({
auth: oauth2client,
resource: {
id: channelId,
resourceId: resourceId
}
}, async function (err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return reject(err);
} else {
console.log("Stopped watching channel " + channelId);
await dynamoDB.deleteWatchData(channelId)
resolve(response);
}
})
})
}
関連する問題
- 1. プログレスバーが停止していません
- 2. GoogleカレンダーAPIでサービスが定義されていません
- 3. Google ClassroomカレンダーはGoogleカレンダーAPIを使用していますか?
- 4. 停止サービスは停止しません
- 5. GoogleカレンダーAPIがサーバー上で動作しません
- 6. VB.Net Timer3コントロールが停止方法で停止していません
- 7. Java:デバッガがサードパーティのAPIクラスファイル内で停止していません
- 8. GoogleカレンダーAPIが「プロパティを読み取れません」signIn 'of null'
- 9. GoogleカレンダーAPI - コンストラクタが見つかりません
- 10. GoogleカレンダーAPI PHP(400)終了時間がありません
- 11. GoogleカレンダーのAPIクイックスタートプロジェクトません結果がHi
- 12. Google Geocoding v2 APIが突然動作を停止しました
- 13. Google API:リフレッシュトークンが突然停止しました(「invalid_grant」)
- 14. GoogleカレンダーAPI:新しいイベントプロパティ
- 15. Chromeデバッガが停止しません
- 16. BackgroundWorkerスレッドがwinformsを停止していません。C#
- 17. DirectShowグラフのクリーンアップ - DirectShowグラフが停止していません
- 18. preventDefaultがデフォルトのマウスハンドリングを停止していません
- 19. タスク実行者が停止していません
- 20. Xcodeがブレークポイントで停止していません
- 21. Windows Phone 8.1バックグラウンドタスクが停止していませんか?
- 22. XAMPP Tomcatが停止していません
- 23. 変更イベントが停止していません
- 24. スクロールアニメーションが停止していませんか?
- 25. nodejsページが再ロードを停止していません
- 26. whileループは停止しますが、whileループは停止しません
- 27. Googleアナリティクス(またはタグマネージャ)がデバッグモードで停止しています
- 28. SonarQube 6.1自体が停止しています。開始していません
- 29. Googleカレンダーのapi - shareカレンダー
- 30. Android ContentObserverは決して停止していません
我々はRESTfulなAPIを使用して、これを試みてきたし、我々が正常にチャネルを停止することができません。チャンネルを停止する前に、作成後一定の待機時間はありますか? – TaskBasic