我对 Android 开发完全陌生,想知道以下是否可行,以及处理它的最佳方法:
- 用户登录 Google 帐户 - 未存储在手机上(OAuth??)
- 应用程序显示他们的 GMail 电子邮件 - 不需要发送,只接收/阅读
- 应用程序可以访问他们的日历并显示事件 - 再次只读
这就是谷歌方面的全部内容!我只使用过 Facebook 身份验证 - 所以不确定 Google 的工作原理。我似乎无法在网上找到任何明确的答案。
是的,这一切皆有可能。
使用Google Play 服务获取 Google API 的 OAuth 2访问令牌。对于 GMail IMAP 和只读日历 API 访问,您需要说明以下范围:
https://mail.google.com/
https://www.googleapis.com/auth/calendar.readonly
使用您的 OAuth 2访问令牌使用一些适用于 Android 的 IMAP 库(例如JavaMail,查看此 Android JavaMail 教程和 Google 的使用 OAuth2 和 JavaMail的示例)。
有关如何访问用户日历的信息,请参阅日历 API 文档。
您可以注册一个使用 OAuth 登录 google 的 Web 应用程序。 https://developers.google.com/accounts/docs/OAuth
然后您可以使用 GMail API 使用 OAuth 令牌访问用户的电子邮件 https://developers.google.com/google-apps/gmail/oauth_overview
然后对于日历,您还可以使用 OAuth 访问 Google Calendar API。 https://developers.google.com/google-apps/calendar/
您可以创建一个 Web 应用程序并使用您的 android 应用程序通过您创建的 API 访问您的 Web 服务器数据库。使用这些数据,您可以为您的 android 用户提供一个不错的 GUI 并提供用户交互。
另一种方法是只使用 android 客户端而不使用 Jan Gerlinger 提到的 Web 应用程序。
您还可以在此处查看 k-9 邮件应用程序的源代码以获取想法: https ://github.com/k9mail/k-9
它是一个功能齐全的开源 android 电子邮件客户端,也支持许多协议,包括 IMAP、SMTP 和 Microsoft Exchange 帐户。您可以深入研究源代码以了解他们是如何做到的。