2016-10-14 16 views
1

hereの手順でGoogle People API sample codeを実行しようとしています。残念ながら、常にListConnectionsResponseのresponse.getConnections()からのヌル接続があります。 AsyncTaskの下には成功して記号の後onActivityResultで実行されます。Android Google People APIの接続は常にnullです

class PeoplesAsync extends AsyncTask<String, Void, List<String>> { 


    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     updateUI(); 
    } 

    @Override 
    protected List<String> doInBackground(String... params) { 

     List<String> nameList = new ArrayList<>(); 

     try { 
      People peopleService = PeopleHelper.setUp(MainActivity.this, params[0]); 

      ListConnectionsResponse response = peopleService.people().connections() 
        .list("people/me").setRequestMaskIncludeField("person.names,person.emailAddresses,person.phoneNumbers") 
        .execute(); 
      List<Person> connections = response.getConnections(); 

      //error: connections is always null 
      for (Person person : connections) { 
       if (!person.isEmpty()) { 
        List<Name> names = person.getNames(); 
        List<EmailAddress> emailAddresses = person.getEmailAddresses(); 
        List<PhoneNumber> phoneNumbers = person.getPhoneNumbers(); 

        if (phoneNumbers != null) 
         for (PhoneNumber phoneNumber : phoneNumbers) 
          Log.d(TAG, "phone: " + phoneNumber.getValue()); 

        if (emailAddresses != null) 
         for (EmailAddress emailAddress : emailAddresses) 
          Log.d(TAG, "email: " + emailAddress.getValue()); 

        if (names != null) 
         for (Name name : names) 
          nameList.add(name.getDisplayName()); 

       } 
      } 

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

     return nameList; 
    } 


    @Override 
    protected void onPostExecute(List<String> nameList) { 
     super.onPostExecute(nameList); 

     progressBar.setVisibility(View.GONE); 

     recyclerView.setVisibility(View.VISIBLE); 

     adapter = new PeopleAdapter(nameList); 
     recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this)); 
     recyclerView.setAdapter(adapter); 

    } 
} 

Googleの人々APIとどのようにそれを修正するには、ヌル応答接続を引き起こし理由は何ですか?

答えて

2

どのような誤解がありますか?ListConnectionsResponse response = peopleService.people().connections() .list("people/me")はユーザーのプロファイルではなく、ユーザーの接続用のプロファイルです。ユーザーの個人プロフィール情報が必要な場合:

Person profile = peopleService.people().get("people/me").execute(); 

      if (!profile.isEmpty()) { 

       List<Name> names = profile.getNames(); 
       List<Birthday> birthdays = profile.getBirthdays(); 
       List<Gender> genders = profile.getGenders(); 
       List<Url> urls = profile.getUrls(); 
       List<EmailAddress> emailAddresses = profile.getEmailAddresses(); 
       List<Photo> profileImages = profile.getPhotos(); 

       String displayName = names.get(0).getDisplayName(); 
       String birthday = birthdays.get(0).getText(); 
       String gender = genders.get(0).getValue(); 
       String email = emailAddresses.get(0).getValue(); 
       String profileImage = profileImages.get(0).getUrl(); 

      } 
+0

しかし、なぜまだresponse.getConnections()ですか?質問にヌル? – Debanjan

+0

あなたがリストに友達がいないときは私は信じています –

0

APIコンソールプロジェクトを作成しましたか?私はhere類似のAPIのチュートリアルを見つけました

関連する問題