Google+ dân API cuối cùng sẽ không được dùng nữa 2017 Q1, xem dưới đây ghi chú deprecation để biết chi tiết:
công bố Android: https://developers.google.com/+/mobile/android/api-deprecation
bố REST của thiết bị đầu cuối: https://developers.google.com/+/web/people/#retrieve-a-collection-of-people
Vì vậy, bạn nên cân nhắc lựa chọn thay thế đã đề xuất và không xây dựng các tính năng mới dựa trên bạn bè trên G + Circle, dưới dạng sẽ không có dữ liệu nào cho người dùng mới có phạm vi plus.login.
Nếu bạn không muốn yêu cầu quyền trong thời gian chạy, bạn vẫn có thể liên hệ với người dùng đã đăng nhập từ People REST API (Lưu ý rằng đây là điều gì đó khác với API người G +). Ngoài ra, nếu bạn cần thông tin tiểu sử của người dùng đã đăng nhập khác với tên đầu tiên/cuối/tên hiển thị, email và url hình ảnh hồ sơ (đã được API đăng nhập cung cấp), bạn cũng nên sử dụng cùng một API người mới.
Trên Android, khi bạn cần Liên hệ dữ liệu (Trong bối cảnh đó, giải thích cho người dùng lý do tại sao bạn đang yêu cầu địa chỉ liên lạc của họ thông tin. KHÔNG yêu cầu phạm vi địa chỉ liên lạc trả trước trong của bạn trước cửa Sign-In Hoạt động)
// 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'
Sau đó viết mã đăng nhập.
// 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
Sau đó, bạn có thể sử dụng Người mới Api để truy xuất danh sách liên hệ.
/** 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();
...
}
}
Bạn đang sử dụng API Thêm vào đó, bây giờ nó giới thiệu các * Liên hệ API hoặc * nhà cung cấp –
Như tôi đã nói trong câu hỏi trên, tôi biết rằng các giải pháp này tồn tại. Nhưng chúng là những lựa chọn thay thế quá khó về những gì trước đây. Tôi không nghĩ rằng việc sử dụng con trỏ và quản lý Thời gian chạy quyền là phương án thay thế của phương thức đơn giản. –
Con trỏ chỉ dành cho Nhà cung cấp, vâng? Không phải là [API danh bạ] (https://developers.google.com/google-apps/contacts/v3 /) –