2016-08-03 29 views
6

Hiện tại, Plus.API không được dùng nữa trong Google Play Services 9.4, cách chính xác để nhận được vòng kết nối Google Plus cho người dùng được xác thực trên Ứng dụng Android là gì?Không được chấp nhận Plus.PeopleApi.load

phương pháp Bây giờ chúng tôi đã bị phản đối điểm bốc hàng cộng người dùng Plus.PeopleApi.load

tài liệu mới nói:

Nếu ứng dụng của bạn cần thông tin xã hội và dữ liệu hồ sơ bao quát hơn, check out Danh bạ nhà cung cấp Android hoặc chéo -Người nền tảng API.

Vì vậy, tôi nên đi với Android Provider điều đó dường như là một lựa chọn khó khăn (Bởi vì tôi có để lọc địa chỉ liên lạc với con trỏ và cũng quản lý Runtime Quyền) Danh bạ.

Bất kỳ phương án thay thế nào dễ dàng của phương pháp không dùng nữa trước đây để chỉ nhận Danh sách vòng kết nối trên G + cho người dùng?

+0

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 –

+0

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. –

+0

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 /) –

Trả lời

4

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(); 
     ... 
    } 
} 
+0

tại đây bạn có thể sử dụng 'googleSignInAccount'? –

+1

Sử dụng GoogleSignInApi để getSignInIntent (mGoogleApiClient) và khởi chạy ý định; sau đó trong onActivityResult, bạn sẽ có thể nhận được GoogleSignInAccount. Xem tài liệu này để biết chi tiết: https://developers.google.com/identity/sign-in/android/sign-in –

+0

Cảm ơn Isabella, bạn sẽ giúp tôi về vấn đề API của mọi người này (http://stackoverflow.com)/question/40278457/android-google-người-api-lỗi-tokenresponseexception-missing-parameter-code)? Cảm ơn rất nhiều ! –

Các vấn đề liên quan