5

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

身份验证和授权: 我很确定它需要使用OAuth 2.0 ...但不确定它是否需要2 legged3 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 集成

非常感谢ELI5 (像我 5 岁一样解释它)概述......我为我明显的无能感到抱歉,但我已经阅读文章近一周,但没有得到任何结果。

预先感谢您提供的任何帮助。

4

1 回答 1

6

好问题。

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

  • 用谷歌注册你的域名(不记得链接)
  • 使用适当的请求参数将浏览器重定向/发送到身份验证 URL: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有很大帮助。祝你好运。

于 2012-01-16T21:34:53.217 回答