2016-08-03 18 views
6

अब जब कि Plus.APIGoogle Play Services 9.4 में हटाई गई है, Google Plus मंडलियां पर Android आवेदन प्रमाणीकृत उपयोगकर्ता के लिए प्राप्त करने के लिए सही तरीका क्या है? प्लस लोडिंग केपदावनत Plus.PeopleApi.load

अब हम पदावनत है विधि उपयोगकर्ताओं Plus.PeopleApi.load

नई प्रलेखन कहते हैं:

अपने अनुप्रयोग सामाजिक जानकारी और अधिक व्यापक प्रोफ़ाइल डेटा, जांच एंड्रॉयड संपर्क प्रदाता या पार की जरूरत है -प्लगेट लोग एपीआई।

तो मैं एंड्रॉयड संपर्क प्रदाता कि (क्योंकि मैं कर्सर के साथ संपर्क फिल्टर करने के लिए है और यह भी प्रबंधन रनटाइम अनुमतियां है) एक कठिन विकल्प प्रतीत हो रहा है के साथ जाना चाहिए।

उपयोगकर्ता के लिए जी + सर्कल की सूची प्राप्त करने के लिए पिछली बहिष्कृत विधि के किसी भी आसान विकल्प?

+0

आप प्लस एपीआई का उपयोग कर रहे थे, अब यह संपर्क API * या * प्रदाता –

+0

की सिफारिश की है जैसा कि मैंने ऊपर सवाल में कहा, मुझे पता है कि इन समाधान मौजूद। लेकिन वे पहले क्या था के बहुत कठिन विकल्प हैं। मुझे नहीं लगता कि कर्सर का उपयोग और रनटाइम अनुमतियों का प्रबंधन करना सरल विधि का विकल्प है। –

+0

कर्सर केवल प्रदाता के लिए हैं, हां? [संपर्क एपीआई] नहीं (https://developers.google।com/google-apps/contact/v3 /) –

उत्तर

4

Google+ लोग एपीआई अंत में पूरी तरह से 2017 Q1 हटा दिया जाएगा, जानकारी के लिए प्रतिवाद नोट नीचे देखें:

एंड्रॉयड घोषणा: https://developers.google.com/+/mobile/android/api-deprecation

REST एंडपॉइंट घोषणा: https://developers.google.com/+/web/people/#retrieve-a-collection-of-people

तो तुम पर विचार करना चाहिए विकल्प सुझाव दिया गया है और जी + सर्किल दोस्तों के आधार पर नई सुविधाओं का निर्माण नहीं किया गया है, प्लस.लॉगिन स्कोप के साथ नए उपयोगकर्ताओं के लिए कोई डेटा उपलब्ध नहीं होगा।

यदि आप रनटाइम अनुमतियों का अनुरोध नहीं करना चाहते हैं, तो भी आप People REST API से साइन-इन किए गए उपयोगकर्ता के संपर्क प्राप्त कर सकते हैं (ध्यान दें कि यह G + People API से कुछ अलग है)। साथ ही, यदि आपको पहले/आखिरी/प्रदर्शन नाम के अलावा साइन-इन उपयोगकर्ता की प्रोफ़ाइल जानकारी की आवश्यकता है, तो ईमेल और प्रोफ़ाइल चित्र url (जो पहले से ही साइन-इन एपीआई द्वारा प्रदान किया गया है), आपको उसी नए लोग API का भी उपयोग करना चाहिए।

एंड्रॉयड पर, जब आप संपर्क डेटा की जरूरत है

( संदर्भ में, उपयोगकर्ता आप अपने संपर्कों के लिए क्यों पूछ रहे हैं करने के लिए समझा जानकारी। संपर्कों गुंजाइश अपने सामने के दरवाजे साइन-इन गतिविधि में अग्रिम अनुरोध नहीं करते हैं)
// Add dependencies (SDKs will be downloaded from mavenCentral) 
compile 'com.google.api-client:google-api-client:1.22.0' 
compile 'com.google.api-client:google-api-client-android:1.22.0' 
compile 'com.google.apis:google-api-services-people:v1-rev4-1.22.0' 

फिर साइन-इन कोड लिखें।

// Make sure your GoogleSignInOptions request email & contacts scopes as shown below 
GoogleSignInOptions gso = 
     new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .requestScopes(new Scope(PeopleScopes.CONTACTS_READONLY))) 
      .build(); 

// Follow official doc to sign-in. 
// https://developers.google.com/identity/sign-in/android/sign-in 

फिर आप संपर्क सूची पुनर्प्राप्त करने के लिए नए लोग एपीआई का उपयोग कर सकते हैं।

/** Global instance of the HTTP transport. */ 
private static HttpTransport HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport(); 
/** Global instance of the JSON factory. */ 
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); 

// On worker thread 
GoogleAccountCredential credential = 
     GoogleAccountCredential.usingOAuth2(MainActivity.this, PeopleScopes.CONTACTS_READONLY); 
credential.setSelectedAccount(
     new Account(googleSignInAccount.getEmail(), "com.google")); 
People service = new People.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) 
       .setApplicationName(APPLICATION_NAME /* whatever you like */) 
       .build(); 
ListConnectionsResponse response = service.people().connections() 
     .list("people/me") 
     // request 20 contacts 
     .setPageSize(20) 
     .execute(); 
List<Person> connections = response.getConnections(); 
if (connections != null && connections.size() > 0) { 
    for (Person person : connections) { 
     List<Name> names = person.getNames(); 
     if (names != null && names.size() > 0) { 
      Log.i(TAG, "Name: " + person.getNames().get(0).getDisplayName()); 
     } else { 
      Log.i(TAG, "No names available for connection."); 
     } 
     List<Gender> genders = person.getGenders(); 
     String ageRange = person.getAgeRange(); 
     List<Birthday> birthdays = person.getBirthdays(); 
     ... 
    } 
} 
+0

का उपयोग करने का सुझाव दिया गया है, कृपया 'googleSignInAccount' कहां से है? –

+1

SignInIntent (mGoogleApiClient) प्राप्त करने के लिए GoogleSignInApi का उपयोग करें, और इरादा लॉन्च करें; फिर AtctivityResult में, आप GoogleSignInAccount प्राप्त करने में सक्षम होंगे। विवरण के लिए इस दस्तावेज़ को देखें: https://developers.google.com/identity/sign-in/android/sign-in –

+0

धन्यवाद इसाबेला, क्या आप इस पीपुल्स एपीआई [समस्या] पर मेरी मदद करेंगे (http://stackoverflow.com/प्रश्न/40278457/एंड्रॉइड-google-people-api-error-tokenresponseexception-missing-पैरामीटर-कोड) साथ ही साथ? आपका बहुत बहुत धन्यवाद ! –

संबंधित मुद्दे