基本上,我创建了一个PHP应用程序,可以在Google上读取,编辑,删除日历,并在我自己的Web应用程序DB上保留一份副本(出于各种原因).现在,我读到了关于OAuth 2.0并意识到使用它比使用我的客户端常规Google密码(可以访问所有谷歌服务(日历,电子邮件等))直接在我的Web应用程序中使用PHP文件(在其他方面)更安全如果一个黑客进入服务器而不是他可以窃取她的密码……).
因此,我创建了OAuth 2.0帐户,从此页面添加了类/文件夹http://code.google.com/apis/calendar/v3/using.html#setup并在测试页面上添加了正确的脚本以“授权访问权限”对你的信息“(参见同一页面中的”实例化客户“)……
以下是我的问题:如果我使用我的登录信息(不是我的客户端)登录我的Gmail,并且我转到我的测试页面,它将要求我授权访问我的Google日历.但我想要我的客户的日历,而不是我的!所以,让我假装我退出,登录我的客户信息并转到测试页面:它是完美的,我授权帐户,然后我被重定向到我的应用程序,在那里我可以看到她的日历.
但这不符合实际或逻辑……例如,我希望她的GENERAL PUBLIC网站上的人们可以访问页面,并填写表格以自动完成约会.该脚本必须检查她的谷歌日历….并获得他们的Gmail帐户的许可?不,我想要她的日历.
所以这是我的问题/疑问.我究竟做错了什么?这是正确的方法还是我错过了一步?这个API是否意味着这样做?
如何使用API以上述方式工作?
谢谢大家点燃我的蜡烛
乔尔
用户可以在以下两种情况之一中写入日历:
>用户拥有日历,或
>所有者通过指定用户的电子邮件地址明确授予用户写入权限.
显然,第二种情况不会扩大.在任何一种情况下,您都需要在您的应用程序中嵌入客户端的凭据,然后使用它们代表经过身份验证的用户创建约会,或者与用户共享日历.当然,您需要加密客户端的凭据 – 不要简单地在应用程序中对其进行硬编码!
与使用客户的“真实”帐户相比,创建一个专门用于此日历的新帐户(具有唯一的电子邮件地址和密码)似乎更安全.然后,您的客户可以按照客户的意愿通过您的应用程序访问它,或者您可以与她共享日历并给予她写入权限.
另一种可能性是将日历设置为只读用户,而不是允许他们直接在客户的日历上创建约会,您的应用可以让他们请求约会:它会在用户的日历上创建活动并发送邀请到您客户的日历.那么您的应用程序将不需要任何嵌入式凭据.它还可以让您的客户有机会确认或拒绝每个约会,自动将她的回复发送给她的用户.另一个好处是每个用户的约会将出现在他/她自己的个人Google日历上.
我很想知道你(或其他任何人)是否找到了更好的解决方案.