gplus 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,16 @@
1
1
  # Changelog
2
2
 
3
- ## v0.5.0: 2011/09/18
3
+ ## v1.0.0: 2011/11/13
4
+
5
+ * Add support for searching for People and Activities
6
+ * Full test coverage of People, Activity and Comment methods
7
+ * Change `#list_activities` and `#list_comments` methods to take an options hash rather than separate :results and :page arguments
8
+
9
+ ## v0.5.0: 2011/10/15
4
10
 
5
11
  * Add support for the Comments API
12
+ * Stub out rspec examples
13
+ * Improve README
6
14
 
7
15
  ## v0.4.0: 2011/09/18
8
16
 
data/README.md CHANGED
@@ -6,7 +6,7 @@ gplus is a complete implementation of the Google+ API, with help from OAuth2 and
6
6
 
7
7
  I'm aiming to produce something light-weight, well documented, and thoroughly tested.
8
8
 
9
- It currently has full support for the People and Activities APIs, using either OAuth requests for private data or API key requests for public data.
9
+ It currently has full support for the People, Activities and Comments APIs, using either OAuth requests for private data or API key requests for public data.
10
10
 
11
11
  * [Documentation](http://rubydoc.info/github/nfm/gplus/master/frames)
12
12
  * [Issues](https://github.com/nfm/gplus/issues)
@@ -14,9 +14,7 @@ It currently has full support for the People and Activities APIs, using either O
14
14
 
15
15
  ## Installation
16
16
 
17
- Add the current version of gplus to your Gemfile, then run `bundle install`.
18
-
19
- gem "gplus"
17
+ Add `gplus` to your Gemfile, then run `bundle install`.
20
18
 
21
19
  ## Creating and configuring your application
22
20
 
@@ -32,17 +30,17 @@ Currently, the Google+ API limits applications to 1,000 API requests per day. Yo
32
30
 
33
31
  Create an API client using your API key:
34
32
 
35
- @client = Gplus::Client.new(
33
+ @gplus = Gplus::Client.new(
36
34
  :api_key => 'YOUR_API_KEY'
37
35
  )
38
36
 
39
- You can now make requests for public data using the methods below for People and Activities.
37
+ You can now make requests for public data using the methods below.
40
38
 
41
39
  ## Authorized requests
42
40
 
43
41
  First, create an API client using your Client ID, Client Secret, and one of the redirect URIs you have allowed:
44
42
 
45
- @client = Gplus::Client.new(
43
+ @gplus = Gplus::Client.new(
46
44
  :client_id => 'YOUR_CLIENT_ID',
47
45
  :client_secret => 'YOUR_CLIENT_SECRET',
48
46
  :redirect_uri => 'http://example.com/oauth/callback'
@@ -50,7 +48,7 @@ First, create an API client using your Client ID, Client Secret, and one of the
50
48
 
51
49
  Generate an authorization URL, and use it in a view:
52
50
 
53
- @auth_url = @client.authorization_url
51
+ @auth_url = @gplus.authorization_url
54
52
  => https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri= ...
55
53
 
56
54
  = link_to 'Authorize This App', @auth_url
@@ -59,7 +57,7 @@ After the user authorizes your app, they will be redirected to your `redirect_ur
59
57
 
60
58
  class OauthController < ApplicationController
61
59
  def callback
62
- access_token = client.authorize(params[:code])
60
+ access_token = @gplus.authorize(params[:code])
63
61
  current_user.update_attributes(
64
62
  :token => access_token.token,
65
63
  :refresh_token => access_token.refresh_token,
@@ -70,7 +68,7 @@ After the user authorizes your app, they will be redirected to your `redirect_ur
70
68
 
71
69
  Now you can create an authorized client instance using the stored OAuth token:
72
70
 
73
- @client = Gplus::Client.new(
71
+ @gplus = Gplus::Client.new(
74
72
  :token => current_user.token,
75
73
  :refresh_token => current_user.refresh_token,
76
74
  :token_expires_at => current_user.token_expires_at,
@@ -87,8 +85,8 @@ Gplus will automatically request a new token if the provided token has expired.
87
85
 
88
86
  You can determine whether a token has been refreshed by calling `access_token_refreshed?`:
89
87
 
90
- if @client.access_token_refreshed?
91
- access_token = @client.access_token
88
+ if @gplus.access_token_refreshed?
89
+ access_token = @gplus.access_token
92
90
  current_user.update_attributes(
93
91
  :token => access_token.token,
94
92
  :token_expires_at => access_token.expires_at
@@ -99,9 +97,9 @@ The refreshed OAuth token will have `:refresh_token` set to `nil`. Keep using th
99
97
 
100
98
  ## [People](http://developers.google.com/+/api/latest/people)
101
99
 
102
- Get a person's profile with `client.get_person`:
100
+ Get a person's profile with `.get_person`:
103
101
 
104
- person = client.get_person(id)
102
+ person = @gplus.get_person(id)
105
103
 
106
104
  You can use the id 'me' in place of a Person ID to fetch information about the user the client is authorized as.
107
105
 
@@ -111,13 +109,35 @@ The person's profile will be returned as a nested hash:
111
109
  person[:urls].count
112
110
  person[:name][:middleName]
113
111
 
114
- See the Google+ API documentation for [People](http://developers.google.com/+/api/latest/people) and [People: get](http://developers.google.com/+/api/latest/people/get) for more info.
112
+ Search for public profiles with `.search_people`:
113
+
114
+ people = @gplus.search_people(:query => 'Larry Page')
115
+
116
+ Matching profiles will be returned in a nested hash. The actual profiles are in the `:items` array:
117
+
118
+ people[:selfLink]
119
+ people[:nextPageToken]
120
+ people[:items]
121
+
122
+ By default, this will fetch 10 profiles. You can fetch between 1 and 20 by passing a `:maxResults` option:
123
+
124
+ # Get 20 results
125
+ @gplus.search_people(:query => 'Larry Page', :maxResults => 20)
126
+
127
+ If you want more than 20 results, take the `:nextPageToken` returned from your first request, and pass it as a `:pageToken` option:
128
+
129
+ people = @gplus.search_people(:query => 'Larry Page', :maxResults => 20)
130
+ more_people = @gplus.search_people(:query => 'Larry Page', :maxResults => 20, :pageToken => people[:nextPageToken])
131
+
132
+ Omitting the `:query` option will simply return all profiles.
133
+
134
+ See the Google+ API documentation for [People](http://developers.google.com/+/api/latest/people), [People: get](http://developers.google.com/+/api/latest/people/get) and [People: search](http://developers.google.com/+/api/latest/people/search).
115
135
 
116
136
  ## [Activities](http://developers.google.com/+/api/latest/activities)
117
137
 
118
- Get an activity with `client.get_activity`:
138
+ Get an activity with `.get_activity`:
119
139
 
120
- activity = client.get_activity(id)
140
+ activity = @gplus.get_activity(id)
121
141
 
122
142
  The activity will be returned as a nested hash:
123
143
 
@@ -125,9 +145,9 @@ The activity will be returned as a nested hash:
125
145
  activity[:object][:replies][:totalItems]
126
146
  activity[:attachments].each do { |attachment| attachment[:url] }
127
147
 
128
- List a person's activities with `client.list_activities`:
148
+ List a person's activities with `.list_activities`:
129
149
 
130
- activities = client.list_activities(person_id)
150
+ activities = @gplus.list_activities(person_id)
131
151
 
132
152
  The list will be returned as a nested hash. The actual activities are in the `:items` array:
133
153
 
@@ -135,23 +155,49 @@ The list will be returned as a nested hash. The actual activities are in the `:i
135
155
  activities[:updated]
136
156
  activities[:items].each { |activity| activity[:title] }
137
157
 
138
- By default, this will fetch 20 activities. You can fetch between 1 and 100 by passing a `:results` argument:
158
+ By default, this will fetch 20 activities. You can fetch between 1 and 100 by passing a `:maxResults` option:
139
159
 
140
160
  # Get 80 results
141
- client.list_activities(person_id, :results => 80)
161
+ @gplus.list_activities(person_id, :maxResults => 80)
162
+
163
+ If you want more than 100 results, take the `:nextPageToken` returned from your first request, and pass it as a `:pageToken` option:
164
+
165
+ activities = @gplus.list_activities(person_id, :maxResults => 100)
166
+ more_activities = @gplus.list_activities(person_id, :maxResults => 100, :pageToken => activities[:nextPageToken])
167
+
168
+ Search for public activities with `.search_activities`:
169
+
170
+ activities = @gplus.search_activities(:query => 'Programming')
171
+
172
+ Matching activities will be returned in a nested hash. The actual activities are in the `:items` array:
173
+
174
+ activities[:selfLink]
175
+ activities[:nextPageToken]
176
+ activities[:items]
177
+
178
+ By default, this will fetch 10 activities. You can fetch between 1 and 20 by passing a `:maxResults` option:
179
+
180
+ # Get 20 results
181
+ @gplus.search_activities(:query => 'Programming', :maxResults => 20)
182
+
183
+ If you want more than 20 results, take the `:nextPageToken` returned from your first request, and pass it as a `:pageToken` option:
184
+
185
+ activities = @gplus.search_activities(:query => 'Programming', :maxResults => 20)
186
+ more_activities = @gplus.search_activities(:query => 'Programming', :maxResults => 20, :pageToken => activities[:nextPageToken])
187
+
188
+ Omitting the `:query` option will simply return all activities.
142
189
 
143
- If you want more than 100 results, take the `:nextPageToken` returned from your first request, and pass it as a `:page` argument:
190
+ You can specify an order for the activities that are returned by passing an `:orderBy` option. Acceptable values are "best" and "recent" (the default).
144
191
 
145
- activities = client.list_activities(person_id, :results => 100)
146
- more_activities = client.list_activities(person_id, :results => 100, :page => activities[:nextPageToken])
192
+ activities = @gplus.search_activities(:query => 'Programming', :orderBy => "best")
147
193
 
148
- See the Google+ API documentation for [Activities](http://developers.google.com/+/api/latest/activities), [Activities: get](http://developers.google.com/+/api/latest/activities/get) and [Activities: list](http://developers.google.com/+/api/latest/activities/list).
194
+ See the Google+ API documentation for [Activities](http://developers.google.com/+/api/latest/activities), [Activities: get](http://developers.google.com/+/api/latest/activities/get), [Activities: list](http://developers.google.com/+/api/latest/activities/list), and [Activities: search](http://developers.google.com/+/api/latest/activities/search).
149
195
 
150
196
  ## [Comments](http://developers.google.com/+/api/latest/comments)
151
197
 
152
- Get an activity with `client.get_comment`:
198
+ Get an activity with `.get_comment`:
153
199
 
154
- comment = client.get_comment(id)
200
+ comment = @gplus.get_comment(id)
155
201
 
156
202
  The activity will be returned as a nested hash:
157
203
 
@@ -159,9 +205,9 @@ The activity will be returned as a nested hash:
159
205
  comment[:object][:content][:totalItems]
160
206
  comment[:inReplyTo][:id]
161
207
 
162
- List an activity's comments with `client.list_comments`:
208
+ List an activity's comments with `.list_comments`:
163
209
 
164
- comments = client.list_comments(activity_id)
210
+ comments = @gplus.list_comments(activity_id)
165
211
 
166
212
  The list will be returned as a nested hash. The actual comments are in the `:items` array:
167
213
 
@@ -169,15 +215,15 @@ The list will be returned as a nested hash. The actual comments are in the `:ite
169
215
  comments[:updated]
170
216
  comments[:items].each { |comment| comment[:object][:content] }
171
217
 
172
- By default, this will fetch 20 comments. You can fetch between 1 and 100 by passing a `:results` argument:
218
+ By default, this will fetch 20 comments. You can fetch between 1 and 100 by passing a `:maxResults` option:
173
219
 
174
220
  # Get 80 results
175
- client.list_comments(activity_id, :results => 80)
221
+ @gplus.list_comments(activity_id, :maxResults => 80)
176
222
 
177
- If you want more than 100 results, take the `:nextPageToken` returned from your first request, and pass it as a `:page` argument:
223
+ If you want more than 100 results, take the `:nextPageToken` returned from your first request, and pass it as a `:pageToken` option:
178
224
 
179
- comments = client.list_comments(activity_id, :results => 100)
180
- more_comments = client.list_comments(activity_id, :results => 100, :page => comments[:nextPageToken])
225
+ comments = @gplus.list_comments(activity_id, :maxResults => 100)
226
+ more_comments = @gplus.list_comments(activity_id, :maxResults => 100, :pageToken => comments[:nextPageToken])
181
227
 
182
228
  See the Google+ API documentation for [Comments](http://developers.google.com/+/api/latest/comments), [Comments: get](http://developers.google.com/+/api/latest/comments/get) and [Comments: list](http://developers.google.com/+/api/latest/comments/list).
183
229
 
@@ -18,5 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
19
19
  gem.add_runtime_dependency 'multi_json', '~> 1.0'
20
20
  gem.add_runtime_dependency 'oauth2', '~> 0.5'
21
+
21
22
  gem.add_development_dependency 'rspec'
23
+ gem.add_development_dependency 'webmock'
24
+ gem.add_development_dependency 'simplecov'
22
25
  end
@@ -4,7 +4,7 @@ module Gplus
4
4
  # See http://developers.google.com/+/api/latest/activities/get for more details.
5
5
  #
6
6
  # @param [String] id The unique ID of the activity you want to retrieve.
7
- # @return [Hash] A nested hash representation of an {http://developers.google.com/+/api/latest/activities Activity resource}.
7
+ # @return [Hash] A nested hash representation of an {http://developers.google.com/+/api/latest/activities#resource Activity resource}.
8
8
  def get_activity(id)
9
9
  get("activities/#{id}")
10
10
  end
@@ -13,11 +13,23 @@ module Gplus
13
13
  # See http://developers.google.com/+/api/latest/activities/list for more details.
14
14
  #
15
15
  # @param [String] person_id The unique ID of the person whose activities you want to list. Pass the string 'me' to list the activities for the person that the API client is authorized as.
16
- # @param [Integer] results The number of activities, between 1 and 100, to return.
17
- # @param [String] page The page of activities to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
18
- # @return [Hash] A nested hash representation of {http://developers.google.com/+/api/latest/activities/list list of activities}.
19
- def list_activities(person_id, results = 20, page = nil)
20
- get("people/#{person_id}/activities/public", { :maxResults => results, :pageToken => page })
16
+ # @option options [Integer] maxResults The number of activities, between 1 and 100, to return. Defaults to 20.
17
+ # @option options [String] pageToken The page of activities to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
18
+ # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/activities/list#response list of activities}.
19
+ def list_activities(person_id, options = {})
20
+ get("people/#{person_id}/activities/public", options)
21
+ end
22
+
23
+ # Search all public Google+ activities.
24
+ # See https://developers.google.com/+/api/latest/activities/search for more details
25
+ #
26
+ # @option options [String] query The full text query to search for
27
+ # @option options [Integer] maxResults The number of activities, between 1 and 20, to return. Defaults to 10.
28
+ # @option options [String] pageToken The page of activities to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
29
+ # @option options [String] orderBy Specifies how to order search results. Acceptable values are "best" and "recent". Defaults to "recent".
30
+ # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/activities/search#response search result for activities}.
31
+ def search_activities(options = {})
32
+ get("activities", options)
21
33
  end
22
34
  end
23
35
  end
@@ -1,8 +1,14 @@
1
1
  require 'gplus/activity'
2
+ require 'gplus/comment'
2
3
  require 'gplus/person'
3
4
 
4
5
  module Gplus
5
6
  class Client
7
+ DEFAULT_ENDPOINT = 'https://www.googleapis.com/plus'
8
+ DEFAULT_API_VERSION = 'v1'
9
+
10
+ attr_accessor :endpoint, :api_version
11
+
6
12
  # Create a Google+ API client. Read the {file:README.md README} to find learn about the different ways of initializing a client.
7
13
  #
8
14
  # @param [Hash] options
@@ -15,6 +21,9 @@ module Gplus
15
21
  # @option options [String] :redirect_uri The default URI to redirect to after authorization. You can override this in many other methods. It must be specified as an authorized URI in your application's console. Required to generate an authorization URL with #authorize_url.
16
22
  # @return [Gplus::Client] A Google+ API client.
17
23
  def initialize(options = {})
24
+ self.endpoint = DEFAULT_ENDPOINT
25
+ self.api_version = DEFAULT_API_VERSION
26
+
18
27
  @api_key = options[:api_key]
19
28
  @token = options[:token]
20
29
  @refresh_token = options[:refresh_token]
@@ -26,7 +35,7 @@ module Gplus
26
35
  @oauth_client = OAuth2::Client.new(
27
36
  @client_id,
28
37
  @client_secret,
29
- :site => 'https://www.googleapis.com/plus/',
38
+ :site => self.endpoint,
30
39
  :authorize_url => 'https://accounts.google.com/o/oauth2/auth',
31
40
  :token_url => 'https://accounts.google.com/o/oauth2/token'
32
41
  )
@@ -70,9 +79,9 @@ module Gplus
70
79
  private
71
80
  def get(path, params = {})
72
81
  if access_token
73
- response = access_token.get("v1/#{path}", params)
82
+ response = access_token.get("#{self.api_version}/#{path}", params)
74
83
  else
75
- response = @oauth_client.request(:get, "v1/#{path}", { :params => params.merge(:key => @api_key) })
84
+ response = @oauth_client.request(:get, "#{self.api_version}/#{path}", { :params => params.merge(:key => @api_key) })
76
85
  end
77
86
  MultiJson.decode(response.body)
78
87
  end
@@ -4,7 +4,7 @@ module Gplus
4
4
  # See https://developers.google.com/+/api/latest/comments/get for more details.
5
5
  #
6
6
  # @param [String] id The unique ID of the comment you want to retrieve.
7
- # @returb [Hash] A nested hash representation of a {https://developers.google.com/+/api/latest/comments Comment resource}.
7
+ # @returb [Hash] A nested hash representation of a {https://developers.google.com/+/api/latest/comments#resource Comment resource}.
8
8
  def get_comment(id)
9
9
  get("comments/#{id}")
10
10
  end
@@ -13,11 +13,11 @@ module Gplus
13
13
  # See http://developers.google.com/+/api/latest/comments/list for more details.
14
14
  #
15
15
  # @param [String] activity_id The unique ID of the activity whose comments you want to list.
16
- # @param [Integer] results The number of comments, between 1 and 100, to return.
17
- # @param [String] page The page of comments to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
18
- # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/comments/list list of comments}.
19
- def list_comments(activity_id, results = 20, page = nil)
20
- get("activities/#{activity_id}/comments", { :maxResults => results, :pageToken => page })
16
+ # @option options [Integer] maxResults The number of comments, between 0 and 100, to return. Defaults to 20.
17
+ # @option options [String] pageToken The page of comments to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
18
+ # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/comments/list#response list of comments}.
19
+ def list_comments(activity_id, options = {})
20
+ get("activities/#{activity_id}/comments", options)
21
21
  end
22
22
  end
23
23
  end
@@ -4,9 +4,20 @@ module Gplus
4
4
  # See http://developers.google.com/+/api/latest/people/get for more details.
5
5
  #
6
6
  # @param [String] id The unique ID of the person whose profile you want to retrieve. Pass the string 'me' to fetch the profile for the person that the API client is authorized as.
7
- # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/people/get Person resource}
7
+ # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/people#resource Person resource}
8
8
  def get_person(id)
9
9
  get("people/#{id}")
10
10
  end
11
+
12
+ # Search all public Google+ profiles.
13
+ # See https://developers.google.com/+/api/latest/people/search for more details
14
+ #
15
+ # @option options [String] query The full text query to search for
16
+ # @option options [Integer] maxResults The number of profiles, between 1 and 20, to return. Defaults to 10.
17
+ # @option options [String] pageToken The page of profiles to fetch. Pass the value of :nextPageToken from the previous result set to get the next page of results.
18
+ # @return [Hash] A nested hash representation of a {http://developers.google.com/+/api/latest/people/search#response search result for people}.
19
+ def search_people(options = {})
20
+ get("people", options)
21
+ end
11
22
  end
12
23
  end
@@ -1,3 +1,3 @@
1
1
  module Gplus
2
- VERSION = "0.5.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -0,0 +1 @@
1
+ {"kind":"plus#activityFeed","nextPageToken":"eJxb85aBtbiIQTArsSxRLycxL13PM68kNT21SOjRgiXfG9stmBgYPRlYyxJzSlMrihgEEOr8SnOTUova1kyV5Z7yoJuJgaGigIFBtaG4kKGOAQTY4SyR0iIGpmhP310JamWvNi2FKmVg362wJeHKzUAL28mnq2ZbFuxbrHvym7_sB6uelwXbS0GaWRkYGHU4GOBAgQENNKByWdDlwUAASgPtZQSbgWIMnM_IIOAAUgAGDiDMiM9UFAs4MJ2GBhTA9kMBB8QCDA8JKLDAbHRAFkcJAha4kCBMkEkASbEAWL8CEr8B1TSCgAMLl5ER5jIwYGTABRRQuUzw8GdkYkJyoEADmN0AkkRyHbJHQFyYUxyQRR2QghIHgLiPA48kyJ2aOAIGuyi6OAvUGWBSAEMxLHGyCIBthCkQUEBTBuKzEPQQVivA_uNoIFUnB5SEa8SWwpkYDHCaxwT1O0QfI65wZoAkPmT_Y6hswGAgAJrBAuCwQjNBAc26AzidggzADmfF9Dh6snbAUubAZbAAkOMAjnpE_A","selfLink":"https://www.googleapis.com/plus/v1/people/106189723444098348646/activities/public?","nextLink":"https://www.googleapis.com/plus/v1/people/106189723444098348646/activities/public?maxResults=20&pageToken=eJxb85aBtbiIQTArsSxRLycxL13PM68kNT21SOjRgiXfG9stmBgYPRlYyxJzSlMrihgEEOr8SnOTUova1kyV5Z7yoJuJgaGigIFBtaG4kKGOAQTY4SyR0iIGpmhP310JamWvNi2FKmVg362wJeHKzUAL28mnq2ZbFuxbrHvym7_sB6uelwXbS0GaWRkYGHU4GOBAgQENNKByWdDlwUAASgPtZQSbgWIMnM_IIOAAUgAGDiDMiM9UFAs4MJ2GBhTA9kMBB8QCDA8JKLDAbHRAFkcJAha4kCBMkEkASbEAWL8CEr8B1TSCgAMLl5ER5jIwYGTABRRQuUzw8GdkYkJyoEADmN0AkkRyHbJHQFyYUxyQRR2QghIHgLiPA48kyJ2aOAIGuyi6OAvUGWBSAEMxLHGyCIBthCkQUEBTBuKzEPQQVivA_uNoIFUnB5SEa8SWwpkYDHCaxwT1O0QfI65wZoAkPmT_Y6hswGAgAJrBAuCwQjNBAc26AzidggzADmfF9Dh6snbAUubAZbAAkOMAjnpE_A","title":"Plus Public Activity Feed for Larry Page","updated":"2011-11-13T00:13:47.411Z","id":"tag:google.com,2010:/plus/people/106189723444098348646/activities/public","items":[{"kind":"plus#activity","title":"Super excited we are launching +pages today. Now everyone's favorite brands--companies, not for p...","published":"2011-11-07T18:22:23.000Z","updated":"2011-11-07T18:22:24.060Z","id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Super excited we are launching +pages today. Now everyone&#39;s favorite brands--companies, not for profits--can get their page on Google+.<br /><br />Google Blog post: <br /><a href=\"http://googleblog.blogspot.com/2011/11/google-pages-connect-with-all-things.html\" >http://googleblog.blogspot.com/2011/11/google-pages-connect-with-all-things.html</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2","replies":{"totalItems":353,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":2159,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":942,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"video","displayName":"Google+: Pages","url":"javascript:void(0);","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2F8Ccf5GxM7vg%2Fdefault.jpg","type":"image/jpeg"}}]},"crosspostSource":"oz:106189723444098348646.1337f3fe5dd.1","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Thanks to Mayor Villaraigosa for his help celebrating the opening of our new Google LA campus. Ch...","published":"2011-11-04T17:36:36.000Z","updated":"2011-11-04T17:36:37.446Z","id":"z13dizgppsn3efjj504cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/fPEUcHBn98u","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Thanks to Mayor Villaraigosa for his help celebrating the opening of our new Google LA campus. Check out our our new space in Venice! Never would have guessed we&#39;d have a building with gigantic outdoor binoculars!","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/fPEUcHBn98u","replies":{"totalItems":250,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13dizgppsn3efjj504cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":1636,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13dizgppsn3efjj504cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":469,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13dizgppsn3efjj504cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_3198.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194664166609474","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-foj-KvaeIZQ%2FTrQhf_G90kI%2FAAAAAAABN3A%2FVLQl2bsGl80%2Fw288-h288%2FIMG_3198.JPG","type":"image/jpeg","height":120,"width":180},"fullImage":{"url":"https://lh5.googleusercontent.com/-foj-KvaeIZQ/TrQhf_G90kI/AAAAAAABN3A/VLQl2bsGl80/IMG_3198.JPG","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo","content":"IMG_3245.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194668146013026","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-89NhUFZoPSM%2FTrQhgN7us2I%2FAAAAAAABN3E%2Flql9L-y_1mU%2Fw288-h288%2FIMG_3245.JPG","type":"image/jpeg","height":120,"width":180},"fullImage":{"url":"https://lh3.googleusercontent.com/-89NhUFZoPSM/TrQhgN7us2I/AAAAAAABN3E/lql9L-y_1mU/IMG_3245.JPG","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo","content":"IMG_3263.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194679289099090","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh4.googleusercontent.com%2F-UBEEurW4juU%2FTrQhg3ccs1I%2FAAAAAAABN3Q%2FPZekdFNZ080%2Fw288-h288%2FIMG_3263.JPG","type":"image/jpeg","height":120,"width":180},"fullImage":{"url":"https://lh4.googleusercontent.com/-UBEEurW4juU/TrQhg3ccs1I/AAAAAAABN3Q/PZekdFNZ080/IMG_3263.JPG","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo","content":"IMG_0683 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195055117717474","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-75vSUnMiduY%2FTrQh2vg-T-I%2FAAAAAAABN3Y%2FYKgHjznQPVQ%2Fw288-h288%2FIMG_0683%252B%2525281%252529.jpg","type":"image/jpeg","height":120,"width":213},"fullImage":{"url":"https://lh5.googleusercontent.com/-75vSUnMiduY/TrQh2vg-T-I/AAAAAAABN3Y/YKgHjznQPVQ/IMG_0683%2B%25281%2529.jpg","type":"image/jpeg","height":900,"width":1600}},{"objectType":"photo","content":"IMG_0682 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195054718882738","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-yvjvXNySpdY%2FTrQh2uB4k7I%2FAAAAAAABN3c%2FxtVIkszCE_Y%2Fw288-h288%2FIMG_0682%252B%2525281%252529.jpg","type":"image/jpeg","height":120,"width":167},"fullImage":{"url":"https://lh3.googleusercontent.com/-yvjvXNySpdY/TrQh2uB4k7I/AAAAAAABN3c/xtVIkszCE_Y/IMG_0682%2B%25281%2529.jpg","type":"image/jpeg","height":1143,"width":1600}},{"objectType":"photo","content":"IMG_0999 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195059894115554","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-C5e086kjOYA%2FTrQh3BTwXOI%2FAAAAAAABN3g%2F9n9uYze0xyk%2Fw288-h288%2FIMG_0999%252B%2525281%252529.jpg","type":"image/jpeg","height":120,"width":184},"fullImage":{"url":"https://lh5.googleusercontent.com/-C5e086kjOYA/TrQh3BTwXOI/AAAAAAABN3g/9n9uYze0xyk/IMG_0999%2B%25281%2529.jpg","type":"image/jpeg","height":1042,"width":1600}},{"objectType":"photo","content":"IMG_1024.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195078921944082","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh6.googleusercontent.com%2F-iL57xW3xXKM%2FTrQh4IMV_BI%2FAAAAAAABN3k%2FJmTomL7LT9g%2Fw288-h288%2FIMG_1024.jpg","type":"image/jpeg","height":120,"width":179},"fullImage":{"url":"https://lh6.googleusercontent.com/-iL57xW3xXKM/TrQh4IMV_BI/AAAAAAABN3k/JmTomL7LT9g/IMG_1024.jpg","type":"image/jpeg","height":1067,"width":1600}},{"objectType":"photo","content":"IMG_1045 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195089866811410","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-A03KL0pHCPo%2FTrQh4w9zaBI%2FAAAAAAABN3s%2F5ZQJT8GYOlE%2Fw288-h288%2FIMG_1045%252B%2525281%252529.jpg","type":"image/jpeg","height":120,"width":191},"fullImage":{"url":"https://lh3.googleusercontent.com/-A03KL0pHCPo/TrQh4w9zaBI/AAAAAAABN3s/5ZQJT8GYOlE/IMG_1045%2B%25281%2529.jpg","type":"image/jpeg","height":1001,"width":1600}},{"objectType":"photo","content":"IMG_1061.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195104698993570","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-8m3hM_5R7yM%2FTrQh5oOEi6I%2FAAAAAAABN30%2F7z8mbOL5pkY%2Fw288-h288%2FIMG_1061.jpg","type":"image/jpeg","height":120,"width":192},"fullImage":{"url":"https://lh3.googleusercontent.com/-8m3hM_5R7yM/TrQh5oOEi6I/AAAAAAABN30/7z8mbOL5pkY/IMG_1061.jpg","type":"image/jpeg","height":1000,"width":1600}},{"objectType":"photo","content":"IMG_1126.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195114005867698","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-0kQEhEOYYnk%2FTrQh6K5ALLI%2FAAAAAAABN34%2FKilij3w0Opw%2Fw288-h288%2FIMG_1126.jpg","type":"image/jpeg","height":120,"width":213},"fullImage":{"url":"https://lh5.googleusercontent.com/-0kQEhEOYYnk/TrQh6K5ALLI/AAAAAAABN34/Kilij3w0Opw/IMG_1126.jpg","type":"image/jpeg","height":900,"width":1600}}]},"crosspostSource":"oz:106189723444098348646.1336fa253c1.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:24.000Z","updated":"2011-11-04T17:33:24.339Z","id":"z13de3n52xukc3hki23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/3QuqbVFD1Jy","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/3QuqbVFD1Jy","replies":{"totalItems":41,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13de3n52xukc3hki23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":161,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13de3n52xukc3hki23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":17,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13de3n52xukc3hki23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_1126.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195114005867698","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-0kQEhEOYYnk%2FTrQh6K5ALLI%2FAAAAAAABN34%2FKilij3w0Opw%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":900,"width":1600},"fullImage":{"url":"https://lh5.googleusercontent.com/-0kQEhEOYYnk/TrQh6K5ALLI/AAAAAAABN34/Kilij3w0Opw/photo.jpg","type":"image/jpeg","height":900,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421e8ae402cb2:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:23.000Z","updated":"2011-11-04T17:33:23.240Z","id":"z13rdtlaukmdfrjlw23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/B7owDrqX2TP","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/B7owDrqX2TP","replies":{"totalItems":30,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13rdtlaukmdfrjlw23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":146,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13rdtlaukmdfrjlw23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":17,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13rdtlaukmdfrjlw23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_1061.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195104698993570","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-8m3hM_5R7yM%2FTrQh5oOEi6I%2FAAAAAAABN30%2F7z8mbOL5pkY%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":1000,"width":1600},"fullImage":{"url":"https://lh3.googleusercontent.com/-8m3hM_5R7yM/TrQh5oOEi6I/AAAAAAABN30/7z8mbOL5pkY/photo.jpg","type":"image/jpeg","height":1000,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421e683848ba2:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:21.000Z","updated":"2011-11-04T17:33:21.864Z","id":"z12btxpzqte3hfhdc23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/7m7ouURUXFL","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/7m7ouURUXFL","replies":{"totalItems":32,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12btxpzqte3hfhdc23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":226,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12btxpzqte3hfhdc23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":18,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12btxpzqte3hfhdc23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_1045 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195089866811410","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-A03KL0pHCPo%2FTrQh4w9zaBI%2FAAAAAAABN3s%2F5ZQJT8GYOlE%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":1001,"width":1600},"fullImage":{"url":"https://lh3.googleusercontent.com/-A03KL0pHCPo/TrQh4w9zaBI/AAAAAAABN3s/5ZQJT8GYOlE/photo.jpg","type":"image/jpeg","height":1001,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421e30f736812:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:18.000Z","updated":"2011-11-04T17:33:18.832Z","id":"z12cwvriurzfj5knc23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/JV12JEobJr4","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/JV12JEobJr4","replies":{"totalItems":41,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12cwvriurzfj5knc23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":185,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12cwvriurzfj5knc23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":17,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12cwvriurzfj5knc23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_1024.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195078921944082","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh6.googleusercontent.com%2F-iL57xW3xXKM%2FTrQh4IMV_BI%2FAAAAAAABN3k%2FJmTomL7LT9g%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":1067,"width":1600},"fullImage":{"url":"https://lh6.googleusercontent.com/-iL57xW3xXKM/TrQh4IMV_BI/AAAAAAABN3k/JmTomL7LT9g/photo.jpg","type":"image/jpeg","height":1067,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421e08315fc12:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:15.000Z","updated":"2011-11-04T17:33:15.072Z","id":"z12tj3vj4o3vfzaai04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/bVKGG97KVi9","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/bVKGG97KVi9","replies":{"totalItems":207,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12tj3vj4o3vfzaai04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":1064,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12tj3vj4o3vfzaai04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":439,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12tj3vj4o3vfzaai04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_0999 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195059894115554","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-C5e086kjOYA%2FTrQh3BTwXOI%2FAAAAAAABN3g%2F9n9uYze0xyk%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":1042,"width":1600},"fullImage":{"url":"https://lh5.googleusercontent.com/-C5e086kjOYA/TrQh3BTwXOI/AAAAAAABN3g/9n9uYze0xyk/photo.jpg","type":"image/jpeg","height":1042,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421dc14f05ce2:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:14.000Z","updated":"2011-11-04T17:33:14.925Z","id":"z13wgpgixlnoudtm323sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/CLjiJYdC9rf","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/CLjiJYdC9rf","replies":{"totalItems":35,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13wgpgixlnoudtm323sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":134,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13wgpgixlnoudtm323sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":11,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13wgpgixlnoudtm323sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_0682 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195054718882738","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-yvjvXNySpdY%2FTrQh2uB4k7I%2FAAAAAAABN3c%2FxtVIkszCE_Y%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":1143,"width":1600},"fullImage":{"url":"https://lh3.googleusercontent.com/-yvjvXNySpdY/TrQh2uB4k7I/AAAAAAABN3c/xtVIkszCE_Y/photo.jpg","type":"image/jpeg","height":1143,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421dae07893b2:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:33:14.000Z","updated":"2011-11-04T17:33:14.791Z","id":"z12yfdmq1lazf12gp04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RwCTJNYXMQw","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/RwCTJNYXMQw","replies":{"totalItems":24,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12yfdmq1lazf12gp04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":108,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12yfdmq1lazf12gp04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":11,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12yfdmq1lazf12gp04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_0683 (1).jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671195055117717474","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-75vSUnMiduY%2FTrQh2vg-T-I%2FAAAAAAABN3Y%2FYKgHjznQPVQ%2Fs1600%2Fphoto.jpg","type":"image/jpeg","height":900,"width":1600},"fullImage":{"url":"https://lh5.googleusercontent.com/-75vSUnMiduY/TrQh2vg-T-I/AAAAAAABN3Y/YKgHjznQPVQ/photo.jpg","type":"image/jpeg","height":900,"width":1600}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb421daf83e4fe2:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:31:47.000Z","updated":"2011-11-04T17:31:47.695Z","id":"z13affa4fxbvzneu523sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/CbidAjPMWtj","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/CbidAjPMWtj","replies":{"totalItems":12,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13affa4fxbvzneu523sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":50,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13affa4fxbvzneu523sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":3,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13affa4fxbvzneu523sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_3263.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194679289099090","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh4.googleusercontent.com%2F-UBEEurW4juU%2FTrQhg3ccs1I%2FAAAAAAABN3Q%2FPZekdFNZ080%2Fs288%2Fphoto.jpg","type":"image/jpeg","height":192,"width":288},"fullImage":{"url":"https://lh4.googleusercontent.com/-UBEEurW4juU/TrQhg3ccs1I/AAAAAAABN3Q/PZekdFNZ080/photo.jpg","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb42183771cb352:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:31:43.000Z","updated":"2011-11-04T17:31:43.729Z","id":"z132cdhpusesy1mqw04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/dtwbAuAHXnB","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/dtwbAuAHXnB","replies":{"totalItems":23,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cdhpusesy1mqw04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":112,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cdhpusesy1mqw04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":16,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cdhpusesy1mqw04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_3245.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194668146013026","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh3.googleusercontent.com%2F-89NhUFZoPSM%2FTrQhgN7us2I%2FAAAAAAABN3E%2Flql9L-y_1mU%2Fs288%2Fphoto.jpg","type":"image/jpeg","height":192,"width":288},"fullImage":{"url":"https://lh3.googleusercontent.com/-89NhUFZoPSM/TrQhgN7us2I/AAAAAAABN3E/lql9L-y_1mU/photo.jpg","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb42180deeeb362:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"2011-11-04","published":"2011-11-04T17:31:43.000Z","updated":"2011-11-04T17:31:43.703Z","id":"z12dznsauwe3sds5z04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/Z5Dd1R7HXx6","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"2011-11-04","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/Z5Dd1R7HXx6","replies":{"totalItems":32,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12dznsauwe3sds5z04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":104,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12dznsauwe3sds5z04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":25,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12dznsauwe3sds5z04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"photo","content":"IMG_3198.JPG","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353/5671194664166609474","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-foj-KvaeIZQ%2FTrQhf_G90kI%2FAAAAAAABN3A%2FVLQl2bsGl80%2Fs288%2Fphoto.jpg","type":"image/jpeg","height":192,"width":288},"fullImage":{"url":"https://lh5.googleusercontent.com/-foj-KvaeIZQ/TrQhf_G90kI/AAAAAAABN3A/VLQl2bsGl80/photo.jpg","type":"image/jpeg","height":800,"width":1200}},{"objectType":"photo-album","displayName":"2011-11-04","url":"https://plus.google.com/photos/106189723444098348646/albums/5671194658148230353"}]},"crosspostSource":"6e80d861ae:4eb4217ff1bdd242:0000000000000001","provider":{"title":"Photos"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Happy Halloween and check out our homepage doodle today. Surprisingly this one actually exists in...","published":"2011-10-31T07:40:35.000Z","updated":"2011-10-31T07:40:37.502Z","id":"z12zfjqrby30f5xsh23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/3LAb9f4csL1","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Happy Halloween and check out our homepage doodle today. <br /><br />Surprisingly this one actually exists in real life! <br /><a href=\"http://www.youtube.com/watch?v=yjG0rmOIngE\" >Google Halloween Doodle 2011 - Behind the Scenes</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/3LAb9f4csL1","replies":{"totalItems":416,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12zfjqrby30f5xsh23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":3500,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12zfjqrby30f5xsh23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":738,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12zfjqrby30f5xsh23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"article","displayName":"Google","url":"http://www.google.com"},{"objectType":"photo","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fwww.google.com%2Flogos%2F2011%2Fhalloween-2011-hp.jpg","type":"image/jpeg"},"fullImage":{"url":"http://www.google.com/logos/2011/halloween-2011-hp.jpg","type":"image/jpeg","height":163,"width":421}}]},"crosspostSource":"oz:106189723444098348646.13358e7b291.1","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Excited there is a bunch of new stuff today in Google+. Google Apps users can now easily have Goo...","published":"2011-10-27T23:10:20.000Z","updated":"2011-10-27T23:10:23.185Z","id":"z13vzfwh3oitdblrq04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/iEprKrhP7Vx","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Excited there is a bunch of new stuff today in Google+. Google Apps users can now easily have Google+!","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/iEprKrhP7Vx","replies":{"totalItems":353,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13vzfwh3oitdblrq04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":1929,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13vzfwh3oitdblrq04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":744,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13vzfwh3oitdblrq04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"article","displayName":"Official Google Blog: Google+: Popular posts, eye-catching analytics, photo fun and...","url":"http://googleblog.blogspot.com/2011/10/google-popular-posts-eye-catching.html"},{"objectType":"photo","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fwww.google.com%2Fgoogleblogs%2Fimages%2Fheaders%2Fogb_header_full.png","type":"image/jpeg"},"fullImage":{"url":"http://www.google.com/googleblogs/images/headers/ogb_header_full.png","type":"image/jpeg","height":123,"width":550}}]},"crosspostSource":"oz:106189723444098348646.133423a1810.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Woke up this morning feeling a little different. #gplushalloween Google+ Update: Add Fun to Your ...","published":"2011-10-27T19:12:46.000Z","updated":"2011-10-27T19:12:48.734Z","id":"z120jl1qxxnitjyks23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/5B6Frce6oUs","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Woke up this morning feeling a little different. #gplushalloween<br /><br /><a href=\"http://www.youtube.com/watch?v=RipLoAUUDjc\" >Google+ Update: Add Fun to Your Photos with the Creative Kit</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/5B6Frce6oUs","replies":{"totalItems":500,"selfLink":"https://www.googleapis.com/plus/v1/activities/z120jl1qxxnitjyks23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":1990,"selfLink":"https://www.googleapis.com/plus/v1/activities/z120jl1qxxnitjyks23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":407,"selfLink":"https://www.googleapis.com/plus/v1/activities/z120jl1qxxnitjyks23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"photo-album","url":"https://plus.google.com/photos/106189723444098348646/albums/5623341100234651505"},{"objectType":"photo","content":"Larry.jpg","url":"https://plus.google.com/photos/106189723444098348646/albums/5623341100234651505/5668251588381279362","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=https%3A%2F%2Flh5.googleusercontent.com%2F-GAQeLRUuI1k%2FTqmsybcChII%2FAAAAAAABNHo%2FaIZ__Id5SIA%2Fs128%2FLarry.jpg","type":"image/jpeg","height":127,"width":128},"fullImage":{"url":"https://lh5.googleusercontent.com/-GAQeLRUuI1k/TqmsybcChII/AAAAAAABNHo/aIZ__Id5SIA/Larry.jpg","type":"image/jpeg","height":417,"width":418}}]},"crosspostSource":"oz:106189723444098348646.13346cb4e63.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Sergey loves his circles! Here's Vic and Sergey at Web 2.0...as Vic says there is a lot of exciti...","published":"2011-10-20T20:52:28.000Z","updated":"2011-10-20T20:52:30.504Z","id":"z12pwhjyooqxj1eix04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/e29kUeoQuEJ","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Sergey loves his circles! Here&#39;s Vic and Sergey at Web 2.0...as Vic says there is a lot of exciting stuff coming up before the holidays. The teams at Google are really cranking!<br /><a href=\"http://www.youtube.com/watch?v=w0XS-9obKPM\" >Web 2.0 Summit: Vic Gundotra and Sergey Brin, &quot; A Conversation with...&quot;</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/e29kUeoQuEJ","replies":{"totalItems":348,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12pwhjyooqxj1eix04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":1691,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12pwhjyooqxj1eix04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":731,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12pwhjyooqxj1eix04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"video","displayName":"Web 2.0 Summit: Vic Gundotra and Sergey Brin, &quot; A Conversation with...&quot;","content":"Vic Gundotra (Google)\nSergey Brin (Google)","url":"http://www.youtube.com/v/w0XS-9obKPM&hl=en&fs=1&autoplay=1","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2Fw0XS-9obKPM%2Fdefault.jpg","type":"image/jpeg"}}]},"crosspostSource":"oz:106189723444098348646.13323186392.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"I've absolutely loved using my pre-release Galaxy Nexus phone running the new version of Android,...","published":"2011-10-19T06:35:46.000Z","updated":"2011-10-19T06:35:49.178Z","id":"z12kcbwgpzfjvn4yz04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/eKrWPrb1SV5","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"I&#39;ve absolutely loved using my pre-release Galaxy Nexus phone running the new version of Android, Ice Cream Sandwich. It is truly beautiful hardware with incredible software. <br /><br />Today in Hong Kong, our partners from Samsung took the stage with Andy Rubin, and introduced the world to the Galaxy Nexus and Android 4.0, also known as Ice Cream Sandwich. Both Google and Samsung spent a lot of time getting everything right, and it really shows!<br /><br />People are at the heart of Ice Cream Sandwich with an amazing new contact manager. We focused on re-inventing sharing on mobile devices. This is what I was talking about when I recently mentioned one way to think about Google+ is that over the last quarter we shipped the +, and now we’re going to ship the Google part.<br /><br />There are ton of other features from super fast camera with amazing panorama mode and 1080p video to Voice Typing which transcribes text nearly instantly as you speak. You can even unlock your phone with just a smile. The screen is unbelievably nice and has 720p resolution and is a gigantic 4.65&quot;. <br /><br />Now that Ice Cream Sandwich is unwrapped, the first Galaxy Nexus phones will ship worldwide starting in November. Sign up to get one, you&#39;ll love it just like I do!","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/eKrWPrb1SV5","replies":{"totalItems":498,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12kcbwgpzfjvn4yz04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":5394,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12kcbwgpzfjvn4yz04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":1831,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12kcbwgpzfjvn4yz04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"article","displayName":"Galaxy Nexus","content":"Galaxy Nexus. First phone with Android 4.0, Face Unlock, Android Beam, an amazing HD screen and 4G LTE fast.","url":"http://google.com/nexus"},{"objectType":"photo","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fwww.google.com%2Fnexus%2Fimg%2Fcontent%2Fintroduction.png","type":"image/jpeg"},"fullImage":{"url":"http://www.google.com/nexus/img/content/introduction.png","type":"image/jpeg","height":485,"width":511}}]},"crosspostSource":"oz:106189723444098348646.1331ac9d4c3.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Very excited about the ice cream sandwich launch in Hong Kong next week--stay tuned for some amaz...","published":"2011-10-14T16:58:54.000Z","updated":"2011-10-14T16:58:57.609Z","id":"z13khtzjxnvcjv44j04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/QwZqbrvrcLF","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Very excited about the ice cream sandwich launch in Hong Kong next week--stay tuned for some amazing new features! And here&#39;s a cool video of the ice cream sandwich Android outside the office in Mountain View--she arrived yesterday.<br /><br />Live: YouTube.com/Android, 10/19/11, 10AM, Hong Kong Time (HKT)","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/QwZqbrvrcLF","replies":{"totalItems":478,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13khtzjxnvcjv44j04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":3409,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13khtzjxnvcjv44j04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":1270,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13khtzjxnvcjv44j04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"video","displayName":"Calling All Ice Cream Sandwich Lovers","content":"Live: YouTube.com/Android, 10/19/11, 10AM, Hong Kong Time (HKT)","url":"http://www.youtube.com/v/RX4btquQzUE&hl=en&fs=1&autoplay=1","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2FRX4btquQzUE%2Fdefault.jpg","type":"image/jpeg"}}]},"crosspostSource":"oz:106189723444098348646.133035d45ef.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"Here is my Google earnings remarks I just gave and the quote from our press release: \"We had a gr...","published":"2011-10-13T20:53:27.000Z","updated":"2011-10-13T20:53:30.156Z","id":"z13sfhbirmi1thaml23sth1xhwiehnmx104","url":"https://plus.google.com/106189723444098348646/posts/EanXz8fLwDh","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Here is my Google earnings remarks I just gave and the quote from our press release:<br /><br />&quot;We had a great quarter,” said Larry Page, CEO of Google. “Revenue was up 33% year on year and our quarterly revenue was just short of $10 billion. Google+ is now open to everyone and we just passed the 40 million user mark. People are flocking into Google+ at an incredible rate and we are just getting started!&quot;<br />------------<br />It’s great to be here--and thanks for taking the time to be with us today.<br /><br />When I look back over the last quarter, the word that springs to mind is “gangbusters”!<br /><br />Revenue was up 33% year on year and our quarterly revenue was just short of $10BN--not bad for a thirteen year old!<br /><br />I’m also incredibly excited about the progress we’ve made on the product side.<br /><br />Ever since taking over as CEO I have focused much of my energy on increasing Google’s velocity and execution.<br /><br />And we’re beginning to see results. Look at Google+ :<br />We had 100 features launched in 90 days--the team is really cranking<br />We had hangouts on the phone, hangouts on <a href=\"http://air--will.i.am\" >air--will.i.am</a> did a hangout from his concert in Central Park<br />You can now share circles<br />You can search Google+<br />And you can play games in Google+<br /><br />And far most exciting of all, open-sign ups … Google+ for everyone!<br /><br />Looking at the numbers for Google+, I was taken aback … I now want to announce that we’ve passed the 40M user mark Google+.<br /><br />People are flocking into Google+ at an incredible rate and we are just getting started!<br /><br />The engagement we are seeing is phenomenal too -- over 3.4BN photos have already been uploaded in Google+.<br /><br />But it’s still incredibly early days for Google+ because our goal is actually far bigger than the individual feature launches themselves.<br /><br />Our ultimate ambition is to transform the overall Google experience--making it beautifully simple, almost automagical, because we understand what you want and can deliver it instantly. <br /><br />This means baking identity and sharing into all of our products so that we build a real relationship with our users. Sharing on the web will be like sharing in real life across all your stuff. You’ll have better, more relevant search results and ads.<br /><br />Think about it this way … last quarter, we’ve shipped the +, and now we’re going to ship the Google part.<br /><br />The new visual redesign--beautiful, consistent UIs for search, news, maps, translate and lots of other features. It’s only the beginning of that process!<br /><br />Last quarter I talked about focus … and we have made great progress here too.<br /><br />To create products that really change people’s lives, that they use every day, two or three times a day, is really hard.<br /><br />So we have to make tough decisions about what to focus on, or we end up doing things that don’t have the impact that we strive for.<br /><br />Since we last spoke we’ve begun the process of shutting over 20 different products, including SideWiki, Google Pack, Google Notebook, and Fast Flip. <br /><br />And we’ll continue to simplify and streamline our products going forward.<br /><br />This prioritization is crucial if we are to really invest in the extraordinary opportunities in front of Google today. Let me give you a few examples.<br /><br />Chrome--usage is going through the roof. We have now hit over 200 million users and still growing fast. Turns out people really care about getting to the web quickly and securely, and having a whole ecosystem of apps at their fingertips. <br /><br />I am super pleased with Google Maps--it’s a favorite with our users, especially on mobile devices. In August we launched in 40 new countries--taking our total to 130 countries.<br /><br />The growth of Android is mindboggling too--over 190M devices have now been activated globally.<br /><br />I’m super excited about the soon to be released new version of Android, called Ice Cream Sandwich. That’s right, Ice Cream Sandwich. You won’t believe what we managed to get done in this release.<br /><br />We’re also seeing hugely positive revenue impact from mobile, which has grown 2.5X in the last 12 months to a run rate of over $2.5 billion.<br /><br />Generally I’ve found that high usage products will make a lot of money over time for well managed technology companies, and that’s why it’s so important to run these businesses for the long term.<br /><br />That said, we must never lose sight of the fact that today’s revenues and growth serve as the engine that funds all of our future innovation. <br /><br />People are a crucial part of Google’s long term success because great companies are no greater than the efforts and ingenuity of their employees.<br /><br />So our goal is to hire the best people at every level, and keep them at Google.<br /><br />But hiring has to be manageable if we are to balance our short and long term needs.<br /><br />You may have noticed quite substantial hiring this quarter, driven in part by a lot of university graduates. Despite this seasonal effect the total number of people we hired was about the same as last quarter. Our attrition remains low which is great, though obviously contributes to our overall headcount.<br /><br />As I’ve said previously, I continue to believe that our headcount growth is at the edge of what’s manageable.<br /><br />Let me finish by saying that we are still at the very early stages of what technology can deliver … these tools we use online will look very different in 5 years time.<br /><br />We’re building those tools now as Google+ which is why I am so excited to be here.<br /><br />So thank you. And again we had a great quarter! <br /><br /><a href=\"http://investor.google.com/earnings/2011/Q3_google_earnings.html\" >http://investor.google.com/earnings/2011/Q3_google_earnings.html</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/EanXz8fLwDh","replies":{"totalItems":481,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13sfhbirmi1thaml23sth1xhwiehnmx104/comments"},"plusoners":{"totalItems":2734,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13sfhbirmi1thaml23sth1xhwiehnmx104/people/plusoners"},"resharers":{"totalItems":876,"selfLink":"https://www.googleapis.com/plus/v1/activities/z13sfhbirmi1thaml23sth1xhwiehnmx104/people/resharers"},"attachments":[{"objectType":"article","displayName":"Google Announces Third Quarter 2011 Financial Results - Google Investor Relations","content":"Google Investor Relations. Home; News and Events; Financial Information. Quarterly Earnings. 2011; 2010; 2009; 2008; 2007; 2006; 2005; 2004. Financial Tables; SEC Filings; SEC Filings Archive; Stock I...","url":"http://investor.google.com/earnings/2011/Q3_google_earnings.html"}]},"crosspostSource":"oz:106189723444098348646.132ff0f1f51.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}},{"kind":"plus#activity","title":"If you know a 14-18 year old, have them submit a YouTube video with a cool experiment to be done ...","published":"2011-10-12T06:05:05.000Z","updated":"2011-10-12T06:05:07.036Z","id":"z132cxjxsmmxhrc4t04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/Sdmj3rr47fh","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"If you know a 14-18 year old, have them submit a YouTube video with a cool experiment to be done in space. Will be judged by some amazing folks like Stephen Hawking, and if they win it will be live streamed from the space station on YouTube! <br /><br />You can all help inspire our next generation of leaders to get excited about science and engineering and have some fun too! Thanks to our Googlers, the space agencies, and the other sponsors for doing this. And check out the video which has already been watched a million times!","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/Sdmj3rr47fh","replies":{"totalItems":281,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cxjxsmmxhrc4t04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":2177,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cxjxsmmxhrc4t04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":1446,"selfLink":"https://www.googleapis.com/plus/v1/activities/z132cxjxsmmxhrc4t04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"video","displayName":"YouTube Space Lab - What Will You Do?","content":"We&#39;re excited to announce YouTube Space Lab, launching with Lenovo and Space Adventures in cooperation with NASA, ESA and JAXA. Watch amazing space and science videos and, if you&#39;re 14 to 18 years old, submit a space experiment idea for your chance to win out-of-this-world prizes. Find out more at http://youtube.com/spacelab. Music composed by Aurotone.","url":"http://www.youtube.com/v/T41vZCadbAk&hl=en&fs=1&autoplay=1","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2FT41vZCadbAk%2Fdefault.jpg","type":"image/jpeg"}}]},"crosspostSource":"oz:106189723444098348646.132f6aad562.0","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}}]}
@@ -0,0 +1 @@
1
+ {"kind":"plus#activity","title":"Super excited we are launching +pages today. Now everyone's favorite brands--companies, not for p...","published":"2011-11-07T18:22:23.000Z","updated":"2011-11-07T18:22:24.060Z","id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2","actor":{"id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},"verb":"post","object":{"objectType":"note","content":"Super excited we are launching +pages today. Now everyone&#39;s favorite brands--companies, not for profits--can get their page on Google+.<br /><br />Google Blog post: <br /><a href=\"http://googleblog.blogspot.com/2011/11/google-pages-connect-with-all-things.html\" >http://googleblog.blogspot.com/2011/11/google-pages-connect-with-all-things.html</a>","originalContent":"","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2","replies":{"totalItems":353,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/comments"},"plusoners":{"totalItems":2159,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/people/plusoners"},"resharers":{"totalItems":942,"selfLink":"https://www.googleapis.com/plus/v1/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/people/resharers"},"attachments":[{"objectType":"video","displayName":"Google+: Pages","url":"javascript:void(0);","image":{"url":"http://images0-focus-opensocial.googleusercontent.com/gadgets/proxy?container=focus&gadget=a&resize_h=100&url=http%3A%2F%2Fytimg.googleusercontent.com%2Fvi%2F8Ccf5GxM7vg%2Fdefault.jpg","type":"image/jpeg"}}]},"crosspostSource":"oz:106189723444098348646.1337f3fe5dd.1","provider":{"title":"Google+"},"access":{"kind":"plus#acl","items":[{"type":"public"}]}}
@@ -0,0 +1 @@
1
+ {"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8lc3Sis3Fuaf8gzMcSNPZw","published":"2011-11-07T18:27:35.625Z","updated":"2011-11-07T18:27:35.625Z","actor":{"id":"101810309994958780182","displayName":"Joe Mazziliano","url":"https://plus.google.com/101810309994958780182","image":{"url":"https://lh6.googleusercontent.com/-hRRXRlG84jY/AAAAAAAAAAI/AAAAAAAAAAA/Bfaqkggz7MI/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"excellent"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8lc3Sis3Fuaf8gzMcSNPZw","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]}
@@ -0,0 +1 @@
1
+ {"kind":"plus#commentFeed","nextPageToken":"20","title":"Plus Comments Feed for Super excited we ar...","updated":"2011-11-12T23:48:14.875Z","id":"tag:google.com,2010:/plus/activities/z12nyfzgsualgleop04cj35obprltdqifo40k/comments","items":[{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8lc3Sis3Fuaf8gzMcSNPZw","published":"2011-11-07T18:27:35.625Z","updated":"2011-11-07T18:27:35.625Z","actor":{"id":"101810309994958780182","displayName":"Joe Mazziliano","url":"https://plus.google.com/101810309994958780182","image":{"url":"https://lh6.googleusercontent.com/-hRRXRlG84jY/AAAAAAAAAAI/AAAAAAAAAAA/Bfaqkggz7MI/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"excellent"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8lc3Sis3Fuaf8gzMcSNPZw","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YnMqZTgFBrinRHIvnLT9Lrg","published":"2011-11-07T18:27:58.745Z","updated":"2011-11-07T18:36:45.000Z","actor":{"id":"102291835965130378165","displayName":"Ziyuan Yao","url":"https://plus.google.com/102291835965130378165","image":{"url":"https://lh4.googleusercontent.com/-gusTdn2uNi4/AAAAAAAAAAI/AAAAAAAAAAA/K6zWF28Xh20/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"I&#39;m #2 :-)"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YnMqZTgFBrinRHIvnLT9Lrg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y53hA0_m3PIvlLveXdYO-Fg","published":"2011-11-07T18:28:17.430Z","updated":"2011-11-07T18:28:17.430Z","actor":{"id":"117862402712401640463","displayName":"vivek samaga","url":"https://plus.google.com/117862402712401640463","image":{"url":"https://lh3.googleusercontent.com/-RMVndHMFJpA/AAAAAAAAAAI/AAAAAAAAAAA/8-3vPRW6KYE/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Much needed"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y53hA0_m3PIvlLveXdYO-Fg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YVAoqRhny2Vrs5v2NSDDAwQ","published":"2011-11-07T18:28:21.894Z","updated":"2011-11-07T18:28:21.894Z","actor":{"id":"110701628121777569957","displayName":"Michael Martin","url":"https://plus.google.com/110701628121777569957","image":{"url":"https://lh6.googleusercontent.com/-JYkCoLcd69k/AAAAAAAAAAI/AAAAAAAAAAA/YdVdtktlM24/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Love it ! I already started following DC Comics !"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YVAoqRhny2Vrs5v2NSDDAwQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YMEmI_VHjkm3lLveXdYO-Fg","published":"2011-11-07T18:28:43.411Z","updated":"2011-11-07T18:28:43.411Z","actor":{"id":"101640814953672945536","displayName":"William Levins","url":"https://plus.google.com/101640814953672945536","image":{"url":"https://lh4.googleusercontent.com/-fbwKhyWpliA/AAAAAAAAAAI/AAAAAAAAAAA/q98dJ6q0z94/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"If it&#39;s released, why can&#39;t I create a page yet?"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YMEmI_VHjkm3lLveXdYO-Fg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YJUVWT7FsrDFfoxMS5ENiCw","published":"2011-11-07T18:28:53.650Z","updated":"2011-11-07T18:28:53.650Z","actor":{"id":"105610257069521074546","displayName":"Leonel Atencio","url":"https://plus.google.com/105610257069521074546","image":{"url":"https://lh5.googleusercontent.com/-K8L0pcwE2CA/AAAAAAAAAAI/AAAAAAAAAAA/0EGF4_NX9sE/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Good!!"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YJUVWT7FsrDFfoxMS5ENiCw","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8iLNslYMHBjs5v2NSDDAwQ","published":"2011-11-07T18:28:59.207Z","updated":"2011-11-07T18:28:59.207Z","actor":{"id":"116611436991464008799","displayName":"Kevin Geng","url":"https://plus.google.com/116611436991464008799","image":{"url":"https://lh3.googleusercontent.com/-nqXM5tlwvzU/AAAAAAAAAAI/AAAAAAAAAAA/3cO18AtYEWQ/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"when can we start making our own?"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Y8iLNslYMHBjs5v2NSDDAwQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Ypyzgq5CWcs_RHIvnLT9Lrg","published":"2011-11-07T18:29:20.014Z","updated":"2011-11-07T18:29:20.014Z","actor":{"id":"113933188142370557001","displayName":"J. Sperling Reich","url":"https://plus.google.com/113933188142370557001","image":{"url":"https://lh3.googleusercontent.com/-QMKkhvcUy9Y/AAAAAAAAAAI/AAAAAAAAAAA/8r8U2D9_nY8/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"When will Google+ Pages be open for everyone to use?"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Ypyzgq5CWcs_RHIvnLT9Lrg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YqezK4NSEOqPRHIvnLT9Lrg","published":"2011-11-07T18:29:23.959Z","updated":"2011-11-07T18:29:23.959Z","actor":{"id":"101581238470854458162","displayName":"Thomas Quintana","url":"https://plus.google.com/101581238470854458162","image":{"url":"https://lh6.googleusercontent.com/-7aF8EYQmD74/AAAAAAAAAAI/AAAAAAAAAAA/Dmr5d-1koA8/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Nice post! Thanks Larry!"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YqezK4NSEOqPRHIvnLT9Lrg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Yf39zVNjtHx8xhcQNTkXoeg","published":"2011-11-07T18:29:48.764Z","updated":"2011-11-07T18:29:48.764Z","actor":{"id":"116009012807412102885","displayName":"Ani Reyna","url":"https://plus.google.com/116009012807412102885","image":{"url":"https://lh3.googleusercontent.com/-jVZebaWveU4/AAAAAAAAAAI/AAAAAAAAAAA/Chh1T3TAJ40/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"yay!"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Yf39zVNjtHx8xhcQNTkXoeg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YtS4juwik4DLs5v2NSDDAwQ","published":"2011-11-07T18:30:18.191Z","updated":"2011-11-07T18:30:18.191Z","actor":{"id":"112364112059181871997","displayName":"Vishwanath Thota","url":"https://plus.google.com/112364112059181871997","image":{"url":"https://lh4.googleusercontent.com/-55riujAKx8g/AAAAAAAAAAI/AAAAAAAAAAA/GnfHqkI78XQ/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Now its really ... real life sharing"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YtS4juwik4DLs5v2NSDDAwQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YQHgK_R3SqJaLGfkUkljXiQ","published":"2011-11-07T18:30:30.594Z","updated":"2011-11-07T18:30:30.594Z","actor":{"id":"109576192007283508998","displayName":"Saadi Camcho","url":"https://plus.google.com/109576192007283508998","image":{"url":"https://lh5.googleusercontent.com/-m2uHTlE6Cxo/AAAAAAAAAAI/AAAAAAAAAAA/yNkJkBuJwik/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"I love it! Thank you Larry google+ is awesome!"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YQHgK_R3SqJaLGfkUkljXiQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YjuM6WHXm7t7s5v2NSDDAwQ","published":"2011-11-07T18:31:05.320Z","updated":"2011-11-07T18:31:05.320Z","actor":{"id":"102153079061223627983","displayName":"Matteo Luigi Riso","url":"https://plus.google.com/102153079061223627983","image":{"url":"https://lh4.googleusercontent.com/-KO9vKn1DkRQ/AAAAAAAAAAI/AAAAAAAAAAA/q0EWykgvhkQ/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"I can&#39;t wait to make one for my product :)"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YjuM6WHXm7t7s5v2NSDDAwQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YCESkrWRFNkxauF01GgorAA","published":"2011-11-07T18:31:09.439Z","updated":"2011-11-07T18:31:09.439Z","actor":{"id":"100192471166797040499","displayName":"Markus Hübner","url":"https://plus.google.com/100192471166797040499","image":{"url":"https://lh6.googleusercontent.com/-imRh6KviZz4/AAAAAAAAAAI/AAAAAAAAAAA/s2LruxTOnFk/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Any idea when <a href=\"http://plus.google.com/pages/create\" >http://plus.google.com/pages/create</a> will work for everyone?"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YCESkrWRFNkxauF01GgorAA","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Yd0sIrAGJJnzlLveXdYO-Fg","published":"2011-11-07T18:31:53.320Z","updated":"2011-11-07T18:31:53.320Z","actor":{"id":"116233982105799378538","displayName":"maria ostos","url":"https://plus.google.com/116233982105799378538","image":{"url":"https://lh4.googleusercontent.com/-Vy8oikK3MgI/AAAAAAAAAAI/AAAAAAAAAAA/AuxFWwVYKOk/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"larry page...i m great fan of you...love u...<br />and when it will launch for everyone...."},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8Yd0sIrAGJJnzlLveXdYO-Fg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YwzSXZgpUp87s5v2NSDDAwQ","published":"2011-11-07T18:32:41.561Z","updated":"2011-11-07T18:32:41.561Z","actor":{"id":"108184417428742226162","displayName":"Julio Pacheco","url":"https://plus.google.com/108184417428742226162","image":{"url":"https://lh5.googleusercontent.com/-LzH8IEZxkIs/AAAAAAAAAAI/AAAAAAAAAAA/DiwcHFGCSa8/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Nice!!!!!! "},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YwzSXZgpUp87s5v2NSDDAwQ","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YGg1X468FxoXlLveXdYO-Fg","published":"2011-11-07T18:32:44.704Z","updated":"2011-11-07T18:32:44.704Z","actor":{"id":"112901304588226965628","displayName":"Samir Saleem","url":"https://plus.google.com/112901304588226965628","image":{"url":"https://lh4.googleusercontent.com/-hhEmkyOIpcw/AAAAAAAAAAI/AAAAAAAAAAA/3Bh87rUhO88/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"The best part is that it can now become a threat to facebook as facebook earns most of its revenue from brands and if brands and companies switch to google+, then facebook is going to go down<br />See google also integrated search for Google+ pages to its core search hence a strategic win <br /><br /><br /><a href=\"http://thetechnologycafe.com/watch-out-facebook-pagesgoogle-pages-arrive-for-brands-companiesintegrates-them-into-search-video-and-pictures/\" >http://thetechnologycafe.com/watch-out-facebook-pagesgoogle-pages-arrive-for-brands-companiesintegrates-them-into-search-video-and-pictures/</a>"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YGg1X468FxoXlLveXdYO-Fg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YteM47qfeouZfoxMS5ENiCw","published":"2011-11-07T18:32:45.120Z","updated":"2011-11-07T18:32:45.120Z","actor":{"id":"112399655763420276717","displayName":"Augusto Farias","url":"https://plus.google.com/112399655763420276717","image":{"url":"https://lh6.googleusercontent.com/-g9EZVKswDmU/AAAAAAAAAAI/AAAAAAAAAAA/iWy95-SQhhI/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"\\o/"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YteM47qfeouZfoxMS5ENiCw","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YOdjwlPWiGcrlLveXdYO-Fg","published":"2011-11-07T18:32:55.126Z","updated":"2011-11-07T18:32:55.126Z","actor":{"id":"116089669698111362158","displayName":"Frej Norling","url":"https://plus.google.com/116089669698111362158","image":{"url":"https://lh5.googleusercontent.com/-RnYA6Hfpguc/AAAAAAAAAAI/AAAAAAAAAAA/PSMWN8yMNRg/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Thats funny, now everyone will add Page(s) to circles! =)"},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YOdjwlPWiGcrlLveXdYO-Fg","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]},{"kind":"plus#comment","id":"AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YaY5esfsoCpG4P1YiC9TA2A","published":"2011-11-07T18:33:24.843Z","updated":"2011-11-07T18:33:24.843Z","actor":{"id":"113275787891136344392","displayName":"Jose Ledon Jr.","url":"https://plus.google.com/113275787891136344392","image":{"url":"https://lh3.googleusercontent.com/-EMPMCZQILgI/AAAAAAAAAAI/AAAAAAAAAAA/y39fWXf-TOw/photo.jpg"}},"verb":"post","object":{"objectType":"comment","content":"Hope this post from <span class=\"proflinkWrapper\"><span class=\"proflinkPrefix\">+</span><a href=\"https://plus.google.com/106189723444098348646\" class=\"proflink\" oid=\"106189723444098348646\">Larry Page</a></span> would re-shared it by sir <span class=\"proflinkWrapper\"><span class=\"proflinkPrefix\">+</span><a href=\"https://plus.google.com/115628770376047128149\" class=\"proflink\" oid=\"115628770376047128149\">Rolly Padayao</a></span> to his <b>30 Reasons Why Google+ Is Better</b>."},"selfLink":"https://www.googleapis.com/plus/v1/comments/AKzC1gBa96muDUddAlC9XhfJ45WHNj7Ec43VFXA3zdQ3Op3Wrhx7088cas30BI8YaY5esfsoCpG4P1YiC9TA2A","inReplyTo":[{"id":"z12nyfzgsualgleop04cj35obprltdqifo40k","url":"https://plus.google.com/106189723444098348646/posts/RyiLPkRnVL2"}]}]}
@@ -0,0 +1 @@
1
+ {"kind":"plus#peopleFeed","selfLink":"https://www.googleapis.com/plus/v1/people?query=Larry+Page&maxResults=10","title":"Plus People Search Feed","nextPageToken":"EAoaAA","items":[{"kind":"plus#person","id":"106189723444098348646","displayName":"Larry Page","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"}},{"kind":"plus#person","id":"111176035772651881663","displayName":"Larry Page","url":"https://plus.google.com/111176035772651881663","image":{"url":"https://lh4.googleusercontent.com/-AFDqJCHiTuA/AAAAAAAAAAI/AAAAAAAAAAA/kwSausqavGo/photo.jpg"}},{"kind":"plus#person","id":"103791422585544033712","displayName":"Larry Page","url":"https://plus.google.com/103791422585544033712","image":{"url":"https://lh4.googleusercontent.com/-imSq0v4_ru0/AAAAAAAAAAI/AAAAAAAAAAA/5K2K5AUfVC8/photo.jpg"}},{"kind":"plus#person","id":"112849143130349626239","displayName":"Larry Page","url":"https://plus.google.com/112849143130349626239","image":{"url":"https://lh5.googleusercontent.com/-rC_RjJcJi0E/AAAAAAAAAAI/AAAAAAAAAAA/L444DXbAwSk/photo.jpg"}},{"kind":"plus#person","id":"113779953107335822789","displayName":"Larry Page","url":"https://plus.google.com/113779953107335822789","image":{"url":"https://lh4.googleusercontent.com/-7aKW1l4vDDQ/AAAAAAAAAAI/AAAAAAAAAAA/rqErAYSyNfs/photo.jpg"}},{"kind":"plus#person","id":"116811829598044504451","displayName":"Andrew Grafton","url":"https://plus.google.com/116811829598044504451","image":{"url":"https://lh5.googleusercontent.com/-WN4JDRW-1GE/AAAAAAAAAAI/AAAAAAAAAAA/56AfF1bB4yc/photo.jpg"}},{"kind":"plus#person","id":"116664055384617761223","displayName":"Chindona Kurnia Ananda","url":"https://plus.google.com/116664055384617761223","image":{"url":"https://lh6.googleusercontent.com/-aHT1qhSZVa8/AAAAAAAAAAI/AAAAAAAAAAA/s1QJvIkYIik/photo.jpg"}},{"kind":"plus#person","id":"115910675895971250072","displayName":"PROF. AURNOB ROY","url":"https://plus.google.com/115910675895971250072","image":{"url":"https://lh3.googleusercontent.com/-ipGFx82njlg/AAAAAAAAAAI/AAAAAAAAAAA/Gl0FaP60b3w/photo.jpg"}},{"kind":"plus#person","id":"112641814042834447174","displayName":"チャイニコラス","url":"https://plus.google.com/112641814042834447174","image":{"url":"https://lh4.googleusercontent.com/-IWdDdHgCGpw/AAAAAAAAAAI/AAAAAAAAAAA/WoDz933QPTs/photo.jpg"}},{"kind":"plus#person","id":"103756592263455012235","displayName":"Elliott Ng","url":"https://plus.google.com/103756592263455012235","image":{"url":"https://lh6.googleusercontent.com/-wO3UgbILI1E/AAAAAAAAAAI/AAAAAAAAAAA/uEaS1Fh8O_E/photo.jpg"}}]}
@@ -0,0 +1 @@
1
+ {"kind":"plus#person","id":"106189723444098348646","displayName":"Larry Page","gender":"male","aboutMe":"","relationshipStatus":"married","url":"https://plus.google.com/106189723444098348646","image":{"url":"https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAAAAAA/xOvnPfMX1XU/photo.jpg"},"urls":[{"value":"https://plus.google.com/106189723444098348646","type":"profile"},{"value":"https://www.googleapis.com/plus/v1/people/106189723444098348646","type":"json"}],"organizations":[{"name":"Google","title":"CEO","type":"work"}]}
@@ -1,9 +1,74 @@
1
+ require 'spec_helper'
2
+
1
3
  describe Gplus::Client do
4
+ before do
5
+ @api_key = '1234567'
6
+ @client = Gplus::Client.new(:api_key => @api_key)
7
+ end
8
+
2
9
  describe '.get_activity' do
3
- pending
10
+ it "should return an activity" do
11
+ activity, activity_json = fixture('activity.json')
12
+
13
+ stub_api_request(:get, "activities/#{activity_json['id']}").to_return(:body => activity)
14
+ @client.get_activity(activity_json['id']).should == activity_json
15
+ end
4
16
  end
5
17
 
6
18
  describe '.list_activities' do
7
- pending
19
+ before do
20
+ @person, @person_json = fixture('person.json')
21
+ @activities, @activities_json = fixture('activities.json')
22
+ end
23
+
24
+ it "should return a list of a person's public activities" do
25
+ stub_api_request(:get, "people/#{@person_json['id']}/activities/public").to_return(:body => @activities)
26
+ @client.list_activities(@person_json['id']).should == @activities_json
27
+ end
28
+
29
+ it "should accept a :maxResults argument" do
30
+ @results = 2
31
+
32
+ stub_api_request(:get, "people/#{@person_json['id']}/activities/public", :maxResults => @results.to_s).to_return(:body => @activities)
33
+ @client.list_activities(@person_json['id'], :maxResults => @results).should == @activities_json
34
+ end
35
+
36
+ it "should accept a :pageToken argument" do
37
+ @page = '1234567'
38
+
39
+ stub_api_request(:get, "people/#{@person_json['id']}/activities/public", :pageToken => @page).to_return(:body => @activities)
40
+ @client.list_activities(@person_json['id'], :pageToken => @page).should == @activities_json
41
+ end
42
+ end
43
+
44
+ describe '.search_activities' do
45
+ before do
46
+ @activity, @activity_json = fixture('activity.json')
47
+ @activities, @activities_json = fixture('activities.json')
48
+ end
49
+
50
+ it "should list all public activities" do
51
+ stub_api_request(:get, "activities").to_return(:body => @activities)
52
+ @client.search_activities.should == @activities_json
53
+ end
54
+
55
+ it "should accept a :query argument" do
56
+ stub_api_request(:get, "activities", :query => @activity_json['title']).to_return(:body => @activity)
57
+ @client.search_activities(:query => @activity_json['title']).should == @activity_json
58
+ end
59
+
60
+ it "should accept a :maxResults argument" do
61
+ @results = 2
62
+
63
+ stub_api_request(:get, "activities", :maxResults => @results.to_s).to_return(:body => @activities)
64
+ @client.search_activities(:maxResults => @results).should == @activities_json
65
+ end
66
+
67
+ it "should accept a :pageToken argument" do
68
+ @page = '1234567'
69
+
70
+ stub_api_request(:get, "activities", :pageToken => @page).to_return(:body => @activities)
71
+ @client.search_activities(:pageToken => @page).should == @activities_json
72
+ end
8
73
  end
9
74
  end
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe Gplus::Client do
2
4
  describe '.initialize' do
3
5
  pending
@@ -1,9 +1,43 @@
1
+ require 'spec_helper'
2
+
1
3
  describe Gplus::Client do
4
+ before do
5
+ @api_key = '1234567'
6
+ @client = Gplus::Client.new(:api_key => @api_key)
7
+ end
8
+
2
9
  describe '.get_comment' do
3
- pending
10
+ it "should return a comment" do
11
+ comment, comment_json = fixture('comment.json')
12
+
13
+ stub_api_request(:get, "comments/#{comment_json['id']}").to_return(:body => comment)
14
+ @client.get_comment(comment_json['id']).should == comment_json
15
+ end
4
16
  end
5
17
 
6
18
  describe '.list_comments' do
7
- pending
19
+ before do
20
+ @activity, @activity_json = fixture('activity.json')
21
+ @comments, @comments_json = fixture('comments.json')
22
+ end
23
+
24
+ it "should return a list of an activity's public comments" do
25
+ stub_api_request(:get, "activities/#{@activity_json['id']}/comments").to_return(:body => @comments)
26
+ @client.list_comments(@activity_json['id']).should == @comments_json
27
+ end
28
+
29
+ it "should accept a :maxResults argument" do
30
+ @results = 2
31
+
32
+ stub_api_request(:get, "activities/#{@activity_json['id']}/comments", :maxResults => @results.to_s).to_return(:body => @comments)
33
+ @client.list_comments(@activity_json['id'], :maxResults => @results).should == @comments_json
34
+ end
35
+
36
+ it "should accept a :pageToken argument" do
37
+ @page = '1234567'
38
+
39
+ stub_api_request(:get, "activities/#{@activity_json['id']}/comments", :pageToken => @page).to_return(:body => @comments)
40
+ @client.list_comments(@activity_json['id'], :pageToken => @page).should == @comments_json
41
+ end
8
42
  end
9
43
  end
@@ -1,5 +1,47 @@
1
+ require 'spec_helper'
2
+
1
3
  describe Gplus::Client do
4
+ before do
5
+ @api_key = '1234567'
6
+ @client = Gplus::Client.new(:api_key => @api_key)
7
+
8
+ @person, @person_json = fixture('person.json')
9
+ end
10
+
2
11
  describe '.get_person' do
3
- pending
12
+ it "should return a person's profile" do
13
+ stub_api_request(:get, "people/#{@person_json['id']}").to_return(:body => @person)
14
+ @client.get_person(@person_json['id']).should == @person_json
15
+ end
16
+ end
17
+
18
+ describe '.search_people' do
19
+ before do
20
+ @people, @people_json = fixture('people.json')
21
+ end
22
+
23
+ it "should list all public profiles" do
24
+ stub_api_request(:get, "people").to_return(:body => @people)
25
+ @client.search_people.should == @people_json
26
+ end
27
+
28
+ it "should accept a :query argument" do
29
+ stub_api_request(:get, "people", :query => @person_json['displayName']).to_return(:body => @person)
30
+ @client.search_people(:query => @person_json['displayName']).should == @person_json
31
+ end
32
+
33
+ it "should accept a :maxResults argument" do
34
+ @results = 2
35
+
36
+ stub_api_request(:get, "people", :maxResults => @results.to_s).to_return(:body => @people)
37
+ @client.search_people(:maxResults => @results).should == @people_json
38
+ end
39
+
40
+ it "should accept a :pageToken argument" do
41
+ @page = '1234567'
42
+
43
+ stub_api_request(:get, "people", :pageToken => @page).to_return(:body => @people)
44
+ @client.search_people(:pageToken => @page).should == @people_json
45
+ end
4
46
  end
5
47
  end
@@ -1,2 +1,17 @@
1
- require 'gplus'
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
2
4
  require 'rspec'
5
+ require 'webmock/rspec'
6
+
7
+ require 'gplus'
8
+
9
+ def fixture(file)
10
+ text = File.read(File.join(File.expand_path('../fixtures', __FILE__), file))
11
+ [text, MultiJson.decode(text)]
12
+ end
13
+
14
+ def stub_api_request(method, path, query = {})
15
+ query[:key] = @api_key unless @api_key.blank?
16
+ stub_request(method, "#{Gplus::Client::DEFAULT_ENDPOINT}/#{Gplus::Client::DEFAULT_API_VERSION}/#{path}").with(:query => query)
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gplus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-15 00:00:00.000000000Z
12
+ date: 2011-11-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
16
- requirement: &23027300 !ruby/object:Gem::Requirement
16
+ requirement: &10383940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *23027300
24
+ version_requirements: *10383940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: oauth2
27
- requirement: &23026460 !ruby/object:Gem::Requirement
27
+ requirement: &10383220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *23026460
35
+ version_requirements: *10383220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &23025000 !ruby/object:Gem::Requirement
38
+ requirement: &10382380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,29 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *23025000
46
+ version_requirements: *10382380
47
+ - !ruby/object:Gem::Dependency
48
+ name: webmock
49
+ requirement: &10381120 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *10381120
58
+ - !ruby/object:Gem::Dependency
59
+ name: simplecov
60
+ requirement: &10380260 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *10380260
47
69
  description: A complete implementation of the Google plus API for Ruby
48
70
  email:
49
71
  - nicholas@2suggestions.com.au
@@ -63,6 +85,12 @@ files:
63
85
  - lib/gplus/comment.rb
64
86
  - lib/gplus/person.rb
65
87
  - lib/gplus/version.rb
88
+ - spec/fixtures/activities.json
89
+ - spec/fixtures/activity.json
90
+ - spec/fixtures/comment.json
91
+ - spec/fixtures/comments.json
92
+ - spec/fixtures/people.json
93
+ - spec/fixtures/person.json
66
94
  - spec/gplus/activity_spec.rb
67
95
  - spec/gplus/client_spec.rb
68
96
  - spec/gplus/comment_spec.rb
@@ -89,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
117
  version: 1.3.6
90
118
  requirements: []
91
119
  rubyforge_project:
92
- rubygems_version: 1.8.10
120
+ rubygems_version: 1.8.11
93
121
  signing_key:
94
122
  specification_version: 3
95
123
  summary: Google+ API implementation with support for authorized requests, People,