首页 > 解决方案 > 谷歌日历无法更新事件

问题描述

我的 Google 日历应用程序几乎可以工作了,我仍然可以在主日历上列出所有事件,我可以在 Google 上进行编辑并在我的日历上查看更新的结果。

问题是我的: var eventToUpdate = gapi.client.calendar.events.get({

收到错误 404。

根据我一直在阅读的内容,以前遇到此问题的人发送了错误的密钥或错误的事件 ID。但我已经使用

https://developers.google.com/calendar/v3/reference/events/update

&我从 Google 获得了 200 的成功回报。

这是我的事件下降:

eventDrop: function( eventDropInfo ) { 
gapi.auth.setToken('<?php echo $google_auth['access_token']; ?>');  
handleAuthClick;
gapi.client.init({
    apiKey: API_KEY,
    clientId: CLIENT_ID,
    discoveryDocs: DISCOVERY_DOCS,
    scope: SCOPES
}).then(function () { 

}, function(error) { 
   appendPre(JSON.stringify(error, null, 2));
});
                updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());  
var eventToUpdate = gapi.client.calendar.events.get({
    "calendarId": 'primary', 
    "eventId": eventDropInfo.id 
});  

还有更多,但这是主要的 Google API 部分。

我认为它可能是 Key,但是 Key 可以用来获取日历信息,并且可以用于我的其他 Google 资料。(驱动器、登录等)

我想也许这是错误的日历 ID,但使用谷歌“试试这个 API”似乎日历 ID + 事件 ID 是完美的,因为谷歌给了我成功。

您可以在下面看到控制台错误,如果我错过了任何重要的事情,请道歉。

谢谢你!

来自控制台的错误 404 --- 更新了更多信息

这表明 Google References 接受了事件 ID 并更新了事件

这是我为获得上述 200 成功而输入的数据

这是显示 JSON google 打印输出的 URL

请注意,我已经检查了范围,我正在使用的 2 个是:

var SCOPES = "https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events";

我能找到的唯一其他人是只读的,所以我怀疑它是范围。

此外,代码似乎可以正常工作,因为我看到的唯一错误是谷歌给出了 404,事件和日历的加载工作只是更新给出了 404。

正如您从屏幕截图中看到的那样,我更新了用于测试的事件 ID,在我的代码中与参考测试中的相同。

标签: google-apigoogle-calendar-apigoogle-oauth

解决方案


现在正在工作。

问题在于我的脚本没有正确设置 OAuth 令牌。它保存了完整的 JSON 字符串,而不仅仅是令牌。

修改登录名并获得正确的 OAuth 后,它可以正常工作:)

谢谢您的帮助!


推荐阅读