我是否可以创建一个应用程序来发送我们的请求以访问用户的Google日历,以便我可以在其中查看事件并能够添加,编辑和删除事件?
我不希望用户登录我的网站以启用此访问权限。相反,我希望能够通过电子邮件发送此请求。
或者,也许他们可以登录网络应用程序并以某种方式授权访问。
答案 0 :(得分:4)
一种选择是通过电子邮件向用户发送指向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附加到state
的{{1}}和authorization_code
值,然后返回确认页面(例如“感谢您让我们访问您的Google日历”会是一个好主意。)
使用redirect_uri
和state
值,按照标准OAuth 2.0流程的其余部分检索authorization_code
,这样您就可以访问用户的Google日历了应用
请注意,日历所有者(点击电子邮件中的链接并授予您的应用程序同意访问日历的用户)可能甚至不是您的应用程序的用户。这就是在同意屏幕和确认页面中提供尽可能多的信息非常重要的原因。
由于您的确认页面将加载,即使用户未授予您的申请同意,您也可以借此机会向用户提供您要求访问其日历的原因的完整说明并提供一个链接,将他们带回同意屏幕。这应该会提高你的成功率。
答案 1 :(得分:0)
您的应用程序发送给Google Calendar API的每个请求都必须 包括授权令牌。令牌还标识您的 申请谷歌。
您的应用程序必须使用OAuth 2.0来授权请求。没有其他 支持授权协议。如果您的应用程序使用 Google+登录时,会为您处理授权的某些方面。
OAuth 2.0的授权过程或“流程”的详细信息 根据您正在编写的应用程序而有所不同。
有关获取访问权限的工作流程的详细信息,请点击here。一旦您的应用具有访问权限,它就可以查看和编辑用户的日历活动,具体取决于已批准的权限。