lib/profile/googleplus.js
/**
* Parse profile.
*
* Parses user profiles as fetched from Google's Google+ API.
*
* The amount of detail in the profile varies based on the scopes granted by the
* user. The following scope values add additional data:
*
* `https://www.googleapis.com/auth/plus.login` - recommended login scope
* `profile` - basic profile information
* `email` - email address
*
* References:
* - https://developers.google.com/+/web/api/rest/latest/people/get
* - https://developers.google.com/+/web/api/rest/
* - https://developers.google.com/+/web/api/rest/oauth
*
* @param {object|string} json
* @return {object}
* @access public
*/
exports.parse = function(json) {
if ('string' == typeof json) {
json = JSON.parse(json);
}
var profile = {}
, i, len;
profile.id = json.id;
profile.displayName = json.displayName;
if (json.name) {
profile.name = { familyName: json.name.familyName,
givenName: json.name.givenName };
}
if (json.emails) {
profile.emails = [];
for (i = 0, len = json.emails.length; i < len; ++i) {
profile.emails.push({ value: json.emails[i].value, type: json.emails[i].type })
}
}
if (json.image) {
profile.photos = [{ value: json.image.url }];
}
profile.gender = json.gender;
return profile;
};