Retrieving profile image from Google+ API

2020-02-10 19:36发布

问题:

I am trying to pull JSON data from Google+ API. When I include the image attribute size of the image is set to 50px. How do I change the image size? I don't see it on the docs. https://developers.google.com/+/api/latest/people/get

GET https://www.googleapis.com/plus/v1/people/100300281975626912157?fields=image&key={YOUR_API_KEY}

Response

{
 "image": {
  "url": "https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=50"
 }
}

回答1:

At the end of your URL string there's a attribute called sz=50

I just tried to change the attribute, and as result the image's size is changed aswell.

Try these two urls:

https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=50

and

https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=150

See the diffrence?



回答2:

Just have to change the sz suffix indicating the wnated size, here is the suffix:

https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=150

If you cut the param, you would get the default photo sized

https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg

And an automatic change in the string: https://jsfiddle.net/upyL4onm/3/

var newSize="300"
var str = "https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=50";
var res = str.split("?sz=50")[0]+"?sz="+newSize;

And the console.log(res) will output:

https://lh3.googleusercontent.com/-U353P5vNuRE/AAAAAAAAAAI/AAAAAAAABKM/a7U7bq251x0/photo.jpg?sz=300



回答3:

Because there is no way in the api to do this, you can just use sustr to remove the ?str= and add your own:

$imageUrl = substr($user['image']['url'],0,strpos($user['image']['url']."?sz=","?sz=")) . '?sz=100';

Or for javascript:

iamgeUrl=user[image][url].substr(0,user[image][url].indexOf('?str=')) + '?sz=100';


标签: google-plus