列出PHP站点上的所有Google Apps配置文件

时间:2012-01-10 06:21:33

标签: php oauth-2.0 google-apps google-profiles-api

我正在尝试将域名的所有Google Apps用户列表放到公共PHP网站上(没有网站访问者需要登录或执行任何操作)。我对需要发生什么有一个基本的了解,但不能完全把它拼凑起来。它不会像我看起来那么难......可以吗?

身份验证和授权: 我很确定它需要使用 OAuth 2.0 ...但我不确定它是否需要 2 legged 3 legged 。我让网站的另一部分与ClientLogin一起工作,但不会引入Google Apps配置文件,只会提取用户的名字和姓氏(我需要其他个人资料字段)。我已在帐户中设置了API访问权限,并将所有内容都设置好(我相信)。

我找到了这个页面,它显示了如何构建一个URL请求来获取所有个人资料(当然除了PHP之外的所有语言),但是不明白如何实现它。 http://code.google.com/googleapps/domain/profiles/developers_guide.html

我也试过这个例子,但是在我输入凭据后它只给了我一个401。 http://gdatatips.blogspot.com/2008/11/2-legged-oauth-in-php.html

我不知道完成此任务需要哪些框架或包含。我已经尝试过zend,OAuth.php和其他一些引导程序......但是每个人都在做些什么,我们会迷失方向。

如果有人可以通过概述帮助我:

  1. 我需要上传哪些文件/框架并包含为引导程序
  2. 我需要使用Google凭据更新这些文件中的哪些变量
  3. 我如何整合Google个人资料“使用PHP检索所有个人资料”请求
  4. 一个 ELI5 (就像我说的那样解释它)概述非常非常感谢...我很抱歉我明显无能,但我一直阅读文章将近一个星期,并没有到任何地方。

    提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:6)

好问题。

您需要实施Google OAuth 2.0流程,因为它描述为here(实验性的?),因为有人()需要为您的应用授予初始访问权限Google Apps API。步骤是:

  • 使用Google注册您的域名(不记得链接)
  • 将浏览器重定向/发送到身份验证网址:https://accounts.google.com/o/oauth2/auth,并附带相应的请求参数(请参阅第一个链接)。您需要access_type=offline,范围为https://apps-apis.google.com/a/feeds/user/
  • 获取代码,然后交换 refresh_token access_token ,以及指定access_token何时过期的值。将它们存储在数据库中
  • 每当您需要进行API调用时,请检查您的access_token是否已过期,并在必要时刷新,这是refresh_token的用途。只要您不撤消对应用程序的访问权限,refresh_token就有效。

OAuth Playground帮了很多忙。祝你好运。