google-api - Google日历-访问权限

标签 google-api google-calendar-api google-oauth

我是否可以创建一个应用程序,该应用程序可以发送访问用户Google日历的请求,以便我可以在那里查看事件并可以添加,编辑和删除事件?

我不希望用户登录我的网站来启用此访问权限。相反,我希望能够通过电子邮件发送此请求。

或者,也许他们可以登录Web应用程序并以某种方式授权自己访问。

最佳答案

一种选择是通过电子邮件向用户发送OAuth 2.0同意屏幕的链接。用户仍然需要在浏览器中打开链接,登录其Google帐户(如果尚未登录),然后单击“授权”按钮以授予您的应用程序对其Google日历事件的访问权限。

首先,您需要在Google开发者控制台中将应用程序注册为Web应用程序(就像其他任何应用程序一样),并获取client_id。请务必在“OAuth同意屏幕”部分中填写您的应用程序名称和网站链接,因为当用户单击授权链接时,这些值将显示给您的用户。

然后,请按照下列步骤操作:

  • 在HTML电子邮件中向用户发送授权链接。该链接应根据"Redirecting to Google's OAuth 2.0 server"中的准则进行构造,并注意以下方面:
  • 确保授权链接中的redirect_uri参数指向您的应用程序。
  • 由于您已经知道用户的电子邮件地址,因此请考虑包括login_hint=<email address>参数以绕过帐户选择屏幕。
  • 重要提示:state参数中提供一个值,以便您可以将此授权请求与用户链接。
  • 链接应放在电子邮件正文中的<a>标记中:<a href="{auth_url}">Allow access to my Google calendar</a>
  • 当用户单击此链接时,其浏览器将打开并显示标准的Google同意屏幕:

    用户做出选择后,他们的浏览器将被重定向到您提供的redirect_uri
  • 即使用户未登录到您的应用程序,也请确保redirect_uri可以使用。捕获Google附加到stateauthorization_coderedirect_uri值,然后返回确认页面(例如,“谢谢您允许我们访问Google日历”是一个好主意)。
  • 使用stateauthorization_code值,遵循标准的OAuth 2.0流程的其余部分,并检索refresh_token,这将使您可以从应用程序访问用户的Google日历。

  • 请记住,日历所有者(单击电子邮件中的链接并授予您的应用程序同意访问日历的用户)甚至可能不是您的应用程序用户。这就是为什么在同意屏幕和确认页面上提供尽可能多的信息很重要的原因。

    由于即使用户未获得您的应用程序同意也将加载确认页面,因此您可以借此机会向用户提供您为什么要求访问其日历的完整说明,并提供一个链接,以使他们回到同意屏幕。这样可以提高您的成功率。

    关于google-api - Google日历-访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758441/

    相关文章:

    javascript - 如何更改 Google 图表中显示的数字格式?

    url - 谷歌新闻 XML API : use country/language parameters

    android - 无法使用 Google API 在 Android Studio 的模拟器中找到系统镜像

    javascript - Google Apps 脚本 "ExecutionResponse"对象不包含 "result"

    google-api - Google Calendar API 同步 token 无效怎么办?

    python - 自动认证--Google Calendar API

    oauth-2.0 - 生成并接收 GA API key 以通过 OAuth2 进行简单 API 访问

    fullcalendar - 2 种方式将 Google 日历与 Fullcalendar 同步

    go - googleapi : Error 403: Request had insufficient authentication scopes.更多详细信息: Reason: insufficientPermissions,消息:权限不足

    oauth-2.0 - 如何允许用户使用他们的 Google 帐户访问[读/写] 私有(private)融合表