Many of you wanted to know what types of apps could use the first version of the Google+ API
v7 introduces augmented hovercards
with functionality that must be integrated into Google+ some day.
1. First, watch the screencast: Using the Google+ API for augmented hovercards - G+me v7
(make sure to select the HD resolution)
2. Then, install the beta: http://huyz.us/gpme-beta/
3. Re-share, of course :)
4. Finally, if you want technical details, come back here to read my notes about the experience with the API.
-----------------------------------------------Limitations of the first release of the API
Right now, the API only gives developers a read-only view of users' profile information and posts (a.k.a. "activities") -- and only the public
posts. Yeah, there isn't much you can do with that... except if you use it to enhance the Google+ UI.Types of Applications
These are initial types of applications that can do useful things so far:
1) A separate web site that queries the API about Google+ users. Examples:
- +Mohamed Mansour
et al's Stream+ https://plus.google.com/116805285176805120365/posts/cDx74Qfhats
- +Gerwin Sturm
2) Plugin for your blog to display your Google+ posts. Example:
- +Will Norris
's WordPress plugin https://plus.google.com/111832530347449196055
3) Extension for Google+ that augments the UI, as examplified by G+me.
The advantage of using the API for extension developers is the ability to enhance the default Google+ UI with features not yet available. You can't be a power user without power tools, right? Users can benefit immediately and without navigating to another site.G+me Augmented Hovercards
In fact, G+me adds augmented hovercards that are designed so that users can get information without having to navigate to another page
. With these premium hovercards, you don't need to visit users' profiles in order to get the gist of what they post about -- i.e., what they're about. So you don't lose your spot and the interface is quicker to use.
' + userid + '/activities/public?maxResults=' + maxResults + '&key=' + plusApiDevKey).then(callback, errback);Experience with the API
The API is very straightforward. Just some surprises.
We get occasional 503 errors from the backend. These seem to happen when querying for certain high-profile users, e.g. +Robert Scoble
, +Felicia Day
, +Wil Wheaton
Also, no "originalContent" field is returned for any items. Bug filed.
And then, there's still the "pagination bug" that affects us even without using the API: you can only see about 250 public posts for each user (https://plus.google.com/111775942615006547057/posts/Es73zcuRPWp
By default, applications are limited to 1000 queries per day. There's also a per-user limit that can be additionally configured. Unfortunately, the web site about the API is not entirely clear about how this applies to extensions that are running on a user's machine with their own IP address. If the app uses the API key, but each user has her own IP address, it makes sense to me that the only limit should be the number of requests per second per IP address. (After all, Google can directly verify that users benefit proportionally to usage.) But it seems that the 1000 queries per day figure includes the requests of all users of the extensions, which of course won't work long-term. Can someone clarify this?Authentication for extensions
I don't need to use OAuth2 yet, but some day I may have to. But for extensions which run from within the Google+ pages, it seems silly to use OAuth2 since the user is already logged into Google+ and the user has already given the extension permissions to run. Why pop up another window to the user and ask them to authorize the app? I would suggest that Google+ put out a token equivalent to an OAuth2 token inside the DOM so that extensions can be immediately authorized without the extraneous popup (and development complexity).What now
Anyway, I just took the time out to develop this so that every user of Google+ could immediately benefit from the new Google+ API.
But I should return to my work on the extension SDK that'll make extensions resilient to layout changes due to compilation by Google's Closure Templates.