Google+ 是社交网络行业的新产品,是 Google 构建社交网络的最新尝试,可让用户轻松地与好友共享新闻和文件,并与他们进行互动。它似乎成功抓住了公众的想象力。据报道,截止 2011 年 12 月,每天都有 625,000 个新用户注册 Google+,用户总数已达到 6200 万。
Web 开发人员有理由对 Google+ 感到兴奋。与其他许多 Google 服务一样,Google+ 随附提供了一个开发人员 API,允许您通过自己的自定义应用程序访问用户生成的内容。由于 API 以 JSON 形式提供其输出,因此它可以轻松与大多数编程工具包进行集成。
本文将介绍 Google+ Data API,了解如何使用它从 Google+ 提取内容,以及如何将它集成到 PHP 应用程序中。(这非常有趣,因此要预先警告您可能会沉溺于它。)
API 的基础知识
在使用 Google+ 开始开发应用程序之前,您需要了解它的工作原理。API 通过 HTTP 工作,并希望获得一个到指定端点的 HTTP 请求。收到此请求后,API 服务器会使用一个包含请求数据的 JSON 提要来响应查询。然后,可以使用服务器端编程语言(比如 PHP 或 Perl)或客户端工具包(比如 jQuery 或 mooTools)解析这些数据,并从中提取内容,以便将它集成到 Web 页面中。
首先您需要做几件事:
设置 Google+ 帐户。 登录 Google Account 并使用主菜单中的 "+You" 链接注册一个 Google+ 帐户。 转到 Google Account Settings 页面,检索您个性化的 Google Profile URL,该 URL 包含您的 Google ID,如 图 1 所示。 认真地记录此 ID;本文中的一些示例需要使用它。 图 1. 带有 Google ID 的 Google Profile URL
激活您 Google+ 帐户的 API 访问。 浏览到 Google APIs Console,创建一个新项目。 为您的新项目激活 Google+ API。 您将会收到一个自动生成的 API 密钥,您可以使用它来访问 API。该密钥位于 Google APIs Console 的 API Access 选项卡下,如 图 2 所示。 认真地记录您的 API 密钥。 图 2. 具有 API 访问密钥的 Google API Console
您还可以使用 OAuth 访问 Google+ API。(OAuth 的讨论不在本文的讨论范围之内。)
获得了 Google+ ID 和 API 密钥后,在您的浏览器中尝试请求 API 端点 https://www.googleapis.com/plus/v1/people/ID/activities/public?key=API-KEY 。记住使用您刚获得的值替换请求中的 ID 和 API-KEY 占位符。您可以在生成页面的源代码中查看请求的响应,请求响应将包含一个最新的 Google+ 帖子列表。它类似于 清单 1。惟一标识符已经变得有些模糊。
清单 1. JSON 格式的 Google+ 活动提要示例
{ "kind": "plus#activityFeed", "etag": "ab49djslas22", "next
PageToken": "eJxtbiSnOTUova1kyV5Z7y", "selfLink": "https://www.googleapis.com/plus/v1/people/ID/activities/public?", "nextLink": "https://www.googleapis.com/plus/v1/people/ID/activities/ public?maxResults=20&pageToken=", "title": "Plus Public Activity Feed for John Doe", "updated": "2012-01-17T06:05:03.277Z", "id": "tag:google.com,2010:/plus/people/ID/activities/public", "items": [ { "kind": "plus#activity", "etag": "abc", "title": "Sleepy at work", "published": "2012-01-17T06:05:03.000Z", "updated": "2012-01-17T06:05:03.277Z", "id": "zab", "url": "https://plus.google.com/ID/posts/XgGBBbn", "actor": { "id": "ID", "displayName": "John Doe", "familyName": "Doe", "givenName": "John", "url": "https://plus.google.com/ID", "image": { "url": "https://lh5.googleusercontent.com/9HzARk/Cxo/photo.jpg?sz=0" } }, "verb": "post", "object": { "objectType": "note", "content": "Sleepy at work", "originalContent": "", "url": "https://plus.google.com/ID/posts/XgGBBbn", "replies": { "totalItems": 0, "selfLink": "https://www.googleapis.com/plus/v1/activities/xys/comments" }, "plusoners": { "totalItems": 0, "selfLink": "https://www.googleapis.com/plus/v1/activities/xys/people/plusoners" }, "resharers": { "totalItems": 0, "selfLink": "https://www.googleapis.com/plus/v1/activities/xys/people/resharers" } }, "provider": { "title": "Google+" }, "access": { "kind": "plus#acl", "items": [ { "type": "public" } ] } }, { ... } ]}
Google+ API 使用包含请求数据的 JSON 提要来响应请求。Google+ 提供了几个有趣的提要,其中包括:
活动提要,包括某个特定用户发布的所有公共帖子。 Per-activity 评论提要,包括一系列对某个活动的用户评论。 Person 提要,包括一系列用户匹配指定关键字或活动。
上述提要需要使用 API 密钥或 OAuth 令牌进行身份验证。
提要本身的格式为 JSON 文档,最外层的密钥包含提要结果集的标题和当前页面的 URL(以及在适用情况下,下一页和上一页)。items 数组包含一个资源集。根据请求的提要,资源可能是活动、个人资料或评论。集合中的每一项都包含有关资源的详细信息,包括:
资源的公共 URL 资源类型和资源 ID 作者 发布日期
根据资源类型,可能会包含更多信息,比如:活动内容、个人资料描述、作者图像、回复数量、共享和 +1s,或者是附件及其内容。您将在本文后面看到这些内容的示例。
目前,Google+ API 是只读的。您可以从中检索信息,但是目前 API 不支持写操作,比如发布新活动或评论,更新作者信息或照片,或者是删除活动。
在第三方应用程序中使用 Google+ 内容受 Google+ 服务条款的约束。您的应用程序应当遵循 Google+ Developer Policies。在开发前,花几分钟时间阅读一下这些文档是值得的,可确保您遵循所有必要规则。