通过REST访问Android上的谷歌日历API



我想访问一个公共谷歌日历,并在我的Android应用程序中列出即将到来的事件。我试图用REST做到这一点,但无法连接到网站。这是我试图打开的url。https://www.googleapis.com/calendar/v3/calendars/frpc9p3dtl73drlglsp7sf3iu4%40group.calendar.google.com/events?key= {MY_API_KEY}

其中{MY_API_KEY}是我从google控制台生成的密钥。我使用eclipse中列出的SHA1编号和我的应用程序名称进行生成。当使用api引用"Try It!"功能,它可以正确工作并返回我的日历事件。当我在Chrome浏览器中打开链接时,它会出现限制超出错误,这是我所期望的,因为我为Android应用程序而不是浏览器制作了密钥。此代码打开与google.com和其他有效网站的正确连接。当使用调试器逐步执行url.openConnection();似乎失败。

byte[] getUrlBytes(String urlSpec) throws IOException {
    URL url = new URL(urlSpec);
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();

……

我不相信我想使用OAUTh,因为我不希望用户必须用他们的google帐户登录。我只想列出我自己的公共活动。我是一名较新的Android开发人员,这几天我一直在尝试我能想到的所有方法。虽然我强烈怀疑它与API有关,但我还没有能够梳理出它可能失败的消息或代码。

为了访问日历上的事件,您必须能够访问该日历,即使事件本身是公共的。如果日历是公开的,那就足够了。否则,您必须作为访问该日历的用户进行身份验证(使用OAuth)。您可以在设置页面将日历设置为公共。

另一个选择可能是您查看服务帐户:https://developers.google.com/accounts/docs/OAuth2ServiceAccount

最新更新