我是否可以创建一个应用程序,该应用程序可以发送访问用户Google日历的请求,以便我可以在那里查看事件并可以添加,编辑和删除事件?
我不希望用户登录我的网站来启用此访问权限。相反,我希望能够通过电子邮件发送此请求。
或者,也许他们可以登录Web应用程序并以某种方式授权自己访问。
最佳答案
一种选择是通过电子邮件向用户发送OAuth 2.0同意屏幕的链接。用户仍然需要在浏览器中打开链接,登录其Google帐户(如果尚未登录),然后单击“授权”按钮以授予您的应用程序对其Google日历事件的访问权限。
首先,您需要在Google开发者控制台中将应用程序注册为Web应用程序(就像其他任何应用程序一样),并获取client_id
。请务必在“OAuth同意屏幕”部分中填写您的应用程序名称和网站链接,因为当用户单击授权链接时,这些值将显示给您的用户。
然后,请按照下列步骤操作:
redirect_uri
参数指向您的应用程序。 login_hint=<email address>
参数以绕过帐户选择屏幕。 state
参数中提供一个值,以便您可以将此授权请求与用户链接。 <a>
标记中:<a href="{auth_url}">Allow access to my Google calendar</a>
用户做出选择后,他们的浏览器将被重定向到您提供的
redirect_uri
。 redirect_uri
可以使用。捕获Google附加到state
的authorization_code
和redirect_uri
值,然后返回确认页面(例如,“谢谢您允许我们访问Google日历”是一个好主意)。 state
和authorization_code
值,遵循标准的OAuth 2.0流程的其余部分,并检索refresh_token
,这将使您可以从应用程序访问用户的Google日历。 请记住,日历所有者(单击电子邮件中的链接并授予您的应用程序同意访问日历的用户)甚至可能不是您的应用程序用户。这就是为什么在同意屏幕和确认页面上提供尽可能多的信息很重要的原因。
由于即使用户未获得您的应用程序同意也将加载确认页面,因此您可以借此机会向用户提供您为什么要求访问其日历的完整说明,并提供一个链接,以使他们回到同意屏幕。这样可以提高您的成功率。
关于google-api - Google日历-访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758441/