当前位置: 首页 > 知识库问答 >
问题:

使用C#.NET使用Google calendar Api v3创建日历时出现错误404

封鸿雪
2023-03-14

我试图创建一个日历使用谷歌日历API v3,如果它还不存在。我的实现成功地检索了我的所有日历和事件,并可以更改日历,但我正在努力添加一个新日历。为了尝试为用户添加新日历,我会这样做:

...
var calendarService = new CalendarService(_authenticator);
var calendarId = "com.somedomain.somename.1234"; // Some random ID
try {
    calendarManager.GetCalendar(calendarId); // No calandar found
} catch(GoogleCalandarServiceProxyException e){
    // Ok, so far so good, calendar not found (that is correct) and I am here
    var someCalendar = new Google.Apis.Calendar.v3.Data.CalendarListEntry {
        Summary = "Some summary!",
        Description = "A calendar descr.",
        AccessRole = "writer",
        BackgroundColor = "#E7323C",
        Id = calendarId
    };
    calendarService.CalendarList.Insert(someCalendar).Fetch(); // Fetch to execute
}

生成的请求:

insert @ https://www.googleapis.com/calendar/v3/users/me/calendarList?alt=json&prettyPrint=true

RequestError:

Google.Apis.Request.RequestErrorNotFound[404]Errors [Message[Not Found]Location[-] Reason[notFound] Domain[global]]]

奇怪的是,在https://www.googleapis.com/calendar/v3/users/me/calendarlist?alt=json&prettyprint=true执行GET操作并没有返回一些东西,所以它应该在那里。

更新似乎我在日历列表谷歌Api浏览器上收到了相同的404错误:

URL:https://developers.google.com/google-apps/calendar/v3/reference/calendarlist/insert

请求:

POST https://www.googleapis.com/calendar/v3/users/me/calendarList?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZQTj-D6uIMOWr_AoFYVvfefsEGcVvLvvMf4aKhgrdvQE25aVw
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "id": "hastalavista"
}
404 Not Found

- Show headers -    {  "error": {   "errors": [    {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"    }   ],   "code": 404,   "message": "Not Found"  } }

有人知道谷歌是否改变了这个资源的URL吗?如果是,我如何改变谷歌日历Api v3使用更新的url...?

共有1个答案

子车峰
2023-03-14

好吧,我的错:

不能用自己的标识符创建日历,CalendarListEntry.insert()的目的是将创建的日历插入日历列表

因此,要创建一个新的日历,必须:

(不要添加id作为paramater,这将自动创建)

插入步骤1中创建的日历的ID,并将其插入日历列表:https://developers.google.com/google-apps/calendar/v3/reference/calendarlist/Insert

 类似资料:
  • 我是Teradata的新手,使用游标创建了一些存储过程并得到了这个错误。请帮忙 用户引用的所有者对(表中的某些列)没有SELECT访问权限语法错误,在“;”之间应该有类似“END”的关键字和'Declare'关键字。‘。正在引用未定义的游标“abc”。用户引用的所有者对(表中的某些列)没有SELECT访问权限用户引用的所有者对(表中的某些列)没有SELECT访问权限引用未定义的游标'ABC'。正在

  • 我需要在日历上创建谷歌日历活动,并将其他用户添加为该活动的参与者。其目的是向应用程序用户发送日历事件,而无需征得他们的同意(O-Auth)。 在阅读了谷歌的留档后,我发现我需要一个服务号。所以我从我们的G-Suite的一个电子邮件地址创建了一个项目和一个服务号,noreply@xxxxx.com并为其启用了日历应用编程接口。 我创建并下载了一个密钥对(JSON),其内容是, 根据文档,我开始编写身

  • 我所有的Redis服务器配置如下: 大师:192.168.0.106:7001,192.168.0.1057001,192.168.0.112:7001 从属:192.168.0.106:7002192.168.0.105:7002192.168.0.122:7002 其中192.168.0.106:7002服务器是192.168.0.106:7001服务器的从属服务器等等。我有所有的服务器上an

  • 我在使用“创建反应应用程序”时遇到编译失败。我得到的信息如下。 __ ./src/App。未找到js模块:您试图导入/联系项目src/目录之外的内容。不支持src/之外的相对导入。您可以将其移动到src/内部,也可以从项目的节点_modules/向其添加符号链接。 __ 奇怪的是,我的src文件夹中肯定有“/联系人”文件,而消息说我没有。这是我的文件夹树。 这是我的应用程序。js代码。 感觉我在这

  • 它需要做的是获取用户名和密码,验证它并根据密码给出适当的输出。请帮帮我.也让我知道如果我的怀疑是正确的。另外,我听说在servlet程序中编写html代码不是一个好的做法。我还想知道如何在index.html文件中编写上面的html代码,这应该与该程序预期的行为方式相同。谢了。

  • 大约一到两周前,我就无法使用pip,因为它总是会回退以下错误: 错误:由于环境原因无法安装程序包错误:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):url超过最大重试次数:/packages/1b/e5/552ba6583ab43e12b299458fea94ee23886125b8b8babc91edb03f2ba65/p