我正在使用 Zend Gdata 将用户连接到一个共享的 Google Docs 电子表格,该电子表格用作自定义界面的后端。
我需要跟踪哪个用户最近更改了特定列中的值。我不知道使用 Google 电子表格执行此操作的方法(但这将是我的问题的可接受答案)。
有没有办法通过 AuthSub 获取当前通过 AuthSub 登录的用户的用户名/电子邮件地址,无论是使用从 Google 返回的令牌还是通过其他方法?
我正在使用 Zend Gdata 将用户连接到一个共享的 Google Docs 电子表格,该电子表格用作自定义界面的后端。
我需要跟踪哪个用户最近更改了特定列中的值。我不知道使用 Google 电子表格执行此操作的方法(但这将是我的问题的可接受答案)。
有没有办法通过 AuthSub 获取当前通过 AuthSub 登录的用户的用户名/电子邮件地址,无论是使用从 Google 返回的令牌还是通过其他方法?
我只是这样做,所以我可以帮助你。
当然,您需要先通过 google 进行身份验证,听起来您已经完成了这项工作,所以我不打算在这里概述它,因为我没有使用 php。但这并不重要,因为谷歌返回 xml,你只需要解析它来获取它。
在您的控制器中,您可以打印 xml 以查看它是如何返回的。如果这对您没有意义,那么您只需要知道 xml 文档中的第一个元素在其中包含用户电子邮件。而且,您可以只解析 xml,以便从电子邮件中获取用户名。
使用 ruby,我是这样做的:
xml.elements.first.text
xml 与 gdata 一起返回,它使用 ruby gem,但它应该与 php 相同。它使用以下代码调用 google。无论如何,您并不应该将 xml 返回给您,您只需要访问第一个元素的 id。
xml = client.get('https://www.google.com/m8/feeds/contacts/default/base?max-results=10000').to_xml
假设 $gspreadsheet 是经过验证的 Zend_Gdata_Spreadsheets 对象,请尝试:
$gspreadsheet->getUserProfile("default")->用户名->文本;