Google plus(获取图片网址)

时间:2014-01-27 11:44:15

标签: android google-plus

我遇到了将图片网址作为Google Plus回复的问题。

提到的正是我需要的..

{
 "id": "ID",
 "name": "NAME",
 "given_name": "GiVEN NAME",
 "family_name": "FAMILY_NAME",
 "link": "https://plus.google.com/ID",
 "picture": "https://PHOTO.jpg",
 "gender": "GENDER",
 "locale": "LOCALE"
}

直到我使用下面提到的才能获得相同的时间。请看看..

在onConnected();

中使用下述内容
try {
                 URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo");
                  //get Access Token with Scopes.PLUS_PROFILE
                  String sAccessToken;
                sAccessToken = GoogleAuthUtil.getToken(MainActivity.this,
                                          mPlusClient.getAccountName() + "",
                                          "oauth2:" + Scopes.PLUS_PROFILE
                                          + " https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email");

                   HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                      urlConnection.setRequestProperty("Authorization", "Bearer "
                              + sAccessToken);
                      BufferedReader r = new BufferedReader(new InputStreamReader(
                              urlConnection.getInputStream(), "UTF-8"));
                      StringBuilder total = new StringBuilder();
                      String line;
                      while ((line = r.readLine()) != null) {
                          total.append(line);
                      }
                      line = total.toString();
                      System.out.println("::::::::::::::::::::::::" + line);
            } catch (UserRecoverableAuthException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Intent recover = e.getIntent();
                startActivityForResult(recover, REQUEST_AUTHORIZATION);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (GoogleAuthException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

上述输出::

{ "id": "106193796000956371669", "email": "vivek@xyz.com", "verified_email": true, "name": "Vivek Singh", "given_name": "Vivek", "family_name": "Singh", "link": "https://plus.google.com/10619379600095669", "gender": "male", "locale": "en", "hd": "xyz.com"}

请告诉我缺少的东西。 任何建议都可能对我有所帮助。

谢谢!

3 个答案:

答案 0 :(得分:4)

如果您知道可以从代码中获取的用户ID,则可以直接查询个人资料图片。

只需拨打电话

即可
https://plus.google.com/s2/photos/profile/" + user.getGooglePlusId() + "?sz=100

其中 getGooglePlusId() 是用户定义的函数,它返回用户的ID和 sz 指定返回图片的大小。

修改

现在已经过时了(2015年12月) 你应该用 https://www.googleapis.com/plus/v1/people/{GOOGLE_USER_ID}?key={YOUR_API_KEY} 其中:

GOOGLE_USER_ID - Google Plus中用户的ID

YOUR_API_KEY - Android API密钥(您可以阅读如何获取它here

此请求的响应将返回JSON,其中包含"图像"领域。这实际上是用户个人资料图片。您可以尝试使用此here进行试验。

顺便说一下,这个API每天有 10000 次访问的限制。在您的google api控制台中,您可以向Google询问更多配额,但我不知道它是如何运作的。

答案 1 :(得分:-1)

您需要在布局中定义ImageView。

说出来.. user_picture

现在您可以直接将该图像设置为.. @ For Facebook / Google Plus

if(usertype.equalsIgnoreCase("facebook")){

            try{

                URL img_value = null;
                img_value = new URL("http://graph.facebook.com/"+ userProfileID +"/picture?type=square");
                Bitmap mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
                user_picture.setImageBitmap(mIcon1);

            }catch(Exception e){
                e.printStackTrace();
            }

        }else{

            try{

                URL img_value = null;
                img_value = new URL("https://plus.google.com/s2/photos/profile/"+ google_Plus_User_Id +"?sz=50");
                Bitmap mIcon1 = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
                user_picture.setImageBitmap(mIcon1);

            }catch(Exception e){
                e.printStackTrace();
            }

        }

希望它对某人有所帮助..干杯!

答案 2 :(得分:-1)

$forJson = file_get_contents('http://picasaweb.google.com/data/entry/api/user/'.$userInfo['id'].'?alt=json', true);
$withowtBacs = str_replace('$','',$forJson);
$toArr = (array)json_decode($withowtBacs);
$andNext = (array)$toArr[entry];
$imgPath = (array)$andNext[gphotothumbnail];
$this->session->set_userdata('imgPath', $imgPath[t]);