Tôi khá bực mình. Tôi đang cố gắng xây dựng trò chơi trực tuyến nhiều người chơi theo lượt cho Android bằng cách sử dụng Máy ứng dụng của Google trong Java làm máy chủ.AuthToken từ Trình quản lý tài khoản trong ứng dụng khách Android Không còn hoạt động
Chúng có vẻ hoàn toàn phù hợp. Android yêu cầu tài khoản Google và GAE sử dụng tài khoản Google để xác thực, đồng thời miễn phí và có thể mở rộng.
Vì vậy, trước ngày lễ, tôi có thể nhận được xác thực cho ứng dụng GAE từ ứng dụng Android của mình bằng API quản lý tài khoản mới trong Android 2.0. Các mã sau đây cho phép bạn truy cập vào authToken của tài khoản Google của người dùng và sau đó sử dụng nó để xác thực, do đó người dùng không cần phải tự nhập tên tài khoản tài khoản và mật khẩu của họ:
AccountManager mgr = AccountManager.get(this);
Account[] accts = mgr.getAccountsByType("com.google");
Account acct = accts[0];
AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "ah", null, this, null, null);
Bundle authTokenBundle = accountManagerFuture.getResult();
String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();
tôi sau đó có thể nối thêm chuỗi kết quả AuthToken đến URL thích hợp và nhận được một cookie hợp lệ mà sau đó tôi có thể sử dụng cho tất cả các yêu cầu tiếp theo. Chỉ có điều là, đôi khi tuần trước nó chỉ dừng lại làm việc cho tôi. Bây giờ khi tôi cố gắng sử dụng AuthToken từ mã trên, tôi không nhận được một cookie trả về và mã của tôi ném một NullPointerException cho cookie bị thiếu.
Khi tôi quay trở lại cách cũ, khi người dùng đã nhập tên người dùng và mật khẩu Google của họ theo cách thủ công và tôi nhận được AuthToken từ "https://www.google.com/accounts/ClientLogin", nó hoạt động tốt.
Vui lòng cho tôi biết ai đó đã xây dựng ứng dụng khách Android cho ứng dụng Google App Engine bằng cách sử dụng AuthToken từ tài khoản Google trên điện thoại của người dùng và cung cấp cho tôi một số đầu mối về lý do khiến điều này không còn hoạt động nữa.
Tôi thực sự muốn thực hiện công việc này. Lựa chọn thay thế của tôi là yêu cầu người dùng nhập thông tin đăng nhập của họ (điều này rất khó khăn và họ không cần phải thực hiện) hoặc đi với giải pháp khác cho máy chủ.
Xin cảm ơn trước.
Chúng ta có thể kiểm tra điều này trên một giả lập chạy API của Google? – Gopinath
Đối với những người tự hỏi "URL thích hợp" là gì và cách "nhận một cookie hợp lệ", nó được đề cập gọn gàng trong [bài đăng trên blog này] (http: //blog.notdot.net/2010/05/Authenticating-chống-App-Engine-từ-một-Android-ứng dụng), mà cũng bao gồm vô hiệu hóa authToken – thomas88wp