Đây là cách truyền thống để có được token từ GoogleApiClient sử dụng trong Google+ đăng nhập:Lấy thẻ tài khoản Google từ GoogleApiClient khi chưa được phép GET_ACCOUNTS
String token = GoogleAuthUtil.getToken(apiClient.getContext(), getAccountNameFromGoogle(apiClient), SCOPE);
Tuy nhiên, GetAccountNameFromGoogle
phương pháp đòi hỏi android.permission.GET_ACCOUNTS
phép và trong Android M Developer Preview 3, sự cho phép này hiện được đánh dấu là nguy hiểm và được nhóm thành nhóm liên hệ. Điều đó có nghĩa là nếu ai đó muốn đăng nhập vào ứng dụng của tôi, anh ấy cần phải cấp quyền truy cập đầy đủ cho ứng dụng của tôi mà quá mức cần thiết.
Có cách nào để đạt được điều này mà không có sự cho phép của GET_ACCOUNTS
không?
Một câu trả lời tiềm năng mà tôi nhận được là lấy tên tài khoản từ AccountPicker, nhưng buộc người dùng phải chọn tài khoản của mình hai lần (một lần để xác thực Google Plus và một lần cho AccountPicker) cũng không phải là giải pháp rất thân thiện.
tôi cố gắng sử dụng G + signin nút [ở đây] (https://github.com/googlesamples/google-services/tree/master/android/signin) và đăng nhập thành công mà không sử dụng quyền 'android.permission.GET_ACCOUNTS'. Tôi thấy rằng nó hoạt động trên Lollipop và có một vấn đề trên M preview 3 khi chạy đến 'Plus.PeopleApi.getCurrentPerson (mGoogleApiClient) .getDisplayName();', nó sẽ có con trỏ null. Tôi đã báo cáo vấn đề [ở đây] (https://github.com/googlesamples/google-services/issues/25). – bjiang
Có, tôi đã sử dụng tính năng đăng nhập đó. Tuy nhiên, chỉ cho phép bạn sử dụng các API trong các dịch vụ phát. Nếu bạn muốn chuyển tiếp mã thông báo tới máy chủ hoặc sử dụng trên các API khác ngoài dịch vụ phát, bạn cần truy xuất mã thông báo. –