在Android上通过Google Plus获取朋友的电子邮件

时间:2015-01-12 12:36:50

标签: android google-plus

我正在创建一个应用程序,我需要在其中获取圈子朋友的电子邮件列表。

我尝试了以下代码,但它无效。

final String account = Plus.AccountApi.getAccountName(mGoogleApiClient);

        AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {

          @Override
          protected String doInBackground(Void... params) {
            HttpURLConnection urlConnection = null;

            try {
              URL url = new URL("https://www.googleapis.com/plus/v1/people/me");
              String sAccessToken = GoogleAuthUtil.getToken(GooglePlusActivity.this, account,
                "oauth2:" + Scopes.PLUS_LOGIN + " https://www.googleapis.com/auth/plus.profile.emails.read");

              urlConnection = (HttpURLConnection) url.openConnection();
              urlConnection.setRequestProperty("Authorization", "Bearer " + sAccessToken);

          String content = CharStreams.toString(new InputStreamReader(urlConnection.getInputStream(), Charsets.UTF_8));

              if (!TextUtils.isEmpty(content)) {
                JSONArray emailArray =  new JSONObject(content).getJSONArray("emails");

                for (int i = 0; i < emailArray.length(); i++) {
                  JSONObject obj = (JSONObject)emailArray.get(i);

                  // Find and return the primary email associated with the account
                  System.out.println(obj.getString("value"));
                  Log.d("jai ho", "jai ho"+obj.getString("value"));
                  if (obj.getString("type") == "account") {
                    return obj.getString("value");
                  }
                }
              }
            } catch (UserRecoverableAuthException userAuthEx) {
              // Start the user recoverable action using the intent returned by
              // getIntent()
              startActivityForResult(userAuthEx.getIntent(), RC_SIGN_IN);
              return account;
           } catch (Exception e) {
              // Handle error
              // e.printStackTrace(); // Uncomment if needed during debugging.
            } finally {
              if (urlConnection != null) {
                urlConnection.disconnect();
              }
            }

请帮帮我。如果有人有好的例子,请在这里发帖。 如果有可能收到朋友的电子邮件,请告诉我。 我没有长时间谷歌搜索,但没有得到确切的信息。

1 个答案:

答案 0 :(得分:0)

每个人都需要拥有相同的应用程序来获取任何G +帐户的所有Google电子邮件,但Google不会让您这样做。即使对于您要进行身份验证的用户,在添加电子邮件范围以让用户接受将电子邮件发送到您的应用之前,您也无法收到他的电子邮件。