gpt4 book ai didi

go - 显示验证为服务帐户的谷歌日历事件 - Golang App

转载 作者:行者123 更新时间:2023-12-05 05:39:05 24 4
gpt4 key购买 nike

在我的 Go 应用程序中,目前作为本地主机在我的开发机器上运行(最终在 Linode 上),我希望简单地显示我自己的 Google 帐户中的日历中的公共(public) Google 日历事件。目前这只显示到控制台,因为我想让它原则上工作,并且我在我的应用程序的索引页面处理程序中有这段代码。

googleCalendar, err := calendar.NewService(r.Context(), option.WithCredentialsFile("./googleAuth.json"))
if err != nil {
app.errorLog.Println(w, err)
}

calEvents, err := googleCalendar.Events.List("primary").TimeMin(time.Now().Format(time.RFC3339)).MaxResults(5).Do()
if err != nil {
app.errorLog.Println(err)
}

if len(calEvents.Items) > 0 {
for _, i := range calEvents.Items {
fmt.Fprintln(w, i.Summary, " ", i.Start.DateTime)
}
} else {
app.errorLog.Println("No calendar events to display")
}

我认为这样做的唯一方法是使用服务帐户,因为我不是 G Workspace (GSuite) 用户(该应用程序最终将在 Linode 上运行),直接使用 Oauth2 太过分了,在我的情况下可能不可用无论如何。我在我的 Google Dev Console 中启用了 Google calendar API 并设置了一个服务帐户,创建/下载了一个 json key 文件(如代码中所示)。我已将服务帐户电子邮件作为共享用户添加到必要的日历中。代码编译并运行,但我只得到“没有要显示的日历事件”,因为“项目”为空(日历确实有事件)。还有更多需要做的吗?如何获取这些日历事件?谢谢

最佳答案

好吧,我终于找到了解决这个问题的方法。我发布的代码是在这种情况下所需要的,但它使用的关键字“primary”不起作用。我不知道为什么,它应该根据谷歌文档工作。我只是用实际的日历 ID(不是日历名称)替换了“主要”,并显示了我的所有事件。 🙄

关于go - 显示验证为服务帐户的谷歌日历事件 - Golang App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72787092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com