[英]How do I update a google calendar event using Node js?
我正在按照 google 日歷文檔通過此處的服務帳戶更新事件。 不幸的是,除了在考慮節點的情況下描述初始設置(它仍然沒有通過服務帳戶顯示過程)之外,谷歌似乎沒有在任何進一步的文檔中包含節點風格。
我的身份驗證設置如下:
//import google library
const {google} = require("googleapis")
//setup scope of auth
const scopes = ['https://www.googleapis.com/auth/calendar.events'];
//load client secrets from a local file
let credentialsRaw = fs.readFileSync(process.env.GOOGLE_CALENDAR_SECRET);
//get credentials as json parsed from raw file contents
let credentials = JSON.parse(credentialsRaw);
//setup auth obj
let auth = new google.auth.JWT(
credentials.client_email, null,
credentials.private_key, scopes
);
其次是我嘗試更新事件的代碼:
//setup calendar object
const calendar = await google.calendar({
version: "v3",
auth
});
//make call to update calendar event
let updateResults = await calendar.events.update({
auth: auth,
calendarId: req.body.calendar_id, //log looks like: i798978asdfjka678sagsdfv3344@group.calendar.google.com
eventId: req.body.event_id, //log looks like: 12432dsfkjhhwqejhkj12
resource: {
"summary": "Test Summary",
"description": "Test Description",
"end": req.body.end_time, //log for end and start look like: { dateTime: '2021-08-09T11:30:00-04:00', timeZone: 'America/New_York' }
"start": req.body.start_time,
}
});
我得到的錯誤是“未找到”。 而已。 我已經嘗試根據這個答案使用encodeURIComponent()
對 calendarId 進行編碼,但這並沒有改變任何東西。 該答案的發布者稍后還提到不再需要編碼修復。
賬戶方面的一些常見問題我認為我已經正確處理了:
下面應該向您展示如何授權服務帳戶。
const {google} = require('googleapis');
const auth = new google.auth.GoogleAuth({
keyFile: '/path/to/your-secret-key.json',
scopes: ['https://www.googleapis.com/auth/calendar.events'],
});
const service = google.calendar({
version: 'v3',
auth: auth
});
有關更多信息,請參閱service-account-credentials
未找到
錯誤通常意味着您無權訪問您嘗試訪問的日歷。 我會檢查以確保代表團按照日歷正確設置。 嘗試使用 calendar.get 進行測試以確保您可以訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.