Google+ Ludzie API zostaną ostatecznie całkowicie przestarzałe 2017 Q1, patrz poniżej notatek dezaprobata dla szczegółów:
Android ogłoszenie: https://developers.google.com/+/mobile/android/api-deprecation
ogłoszenie końcowych REST: https://developers.google.com/+/web/people/#retrieve-a-collection-of-people
Należy więc rozważyć alternatywne zasugerował i nie tworzył nowych funkcji opartych na znajomych z kręgów G +, ponieważ żadne dane nie będą dostępne dla nowych użytkowników z zakresem plus.login.
Jeśli nie chcesz żądać uprawnień środowiska wykonawczego, nadal można uzyskać kontakty zalogowanego użytkownika od People REST API (Należy pamiętać, że jest to coś innego niż interfejs API G + People). Ponadto, jeśli potrzebujesz informacji z profilu zalogowanego użytkownika, innych niż pierwsza/ostatnia/wyświetlana nazwa, adres e-mail i adres URL obrazu profilu (który jest już dostępny w interfejsie API logowania), powinieneś także użyć tego samego nowego interfejsu API People.
Na Androidzie, kiedy trzeba Kontakt danych (w odpowiednim kontekście, tłumacząc użytkownikowi dlaczego prosisz o kontaktach informacje. NIE zażądać zakresu kontaktów z góry w przednie drzwi logowania Aktywny)
// 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'
Następnie wpisz kod logowania.
// 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
Następnie można użyć nowej aplikacji People Api do pobrania listy kontaktów.
/** 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();
...
}
}
uzywasz API Plus, teraz zalecając Kontakt API * lub * dostawcę –
Jak powiedziałem mowa powyżej, wiem, że te rozwiązania istnieją. Ale są one zbyt trudnymi alternatywami tego, co było wcześniej. Nie sądzę, że używanie kursorów i zarządzanie uprawnieniami środowiska wykonawczego jest alternatywą dla prostej metody. –
Kursory są tylko dla Dostawcy, tak? Nie [interfejs API kontaktów] (https://developers.google.com/google-apps/contacts/v3 /) –