Yapmaya çalıştığınız şeyin, başvuruda bulunduğunuz makalede kullanılan App Engine OAuthService aracılığıyla mümkün olduğundan emin değilim. Ayrıca, AppEngine OAuthService'in sadece OAuth 1'i desteklediği ancak Android'in sadece OAuth 2'yi desteklediği belirtildi. Çapraz Android'i yapmak istiyorsanız
- App Engine kimlik, ne yapacağını geçerli:
Android'de
- : Hesap Yöneticisi'nin dan Userınfo API (kapsam =
https://www.googleapis.com/auth/userinfo.email
ve https://www.googleapis.com/auth/userinfo.profile
) için bir erişim jetonu almak.
- Erişim belirtecini Android'den AppEngine'e yaptığınız isteğin bir URL parametresinde App Engine'e geçin (engellemeyi önlemek için HTTPS kullandığınızdan emin olun!).
- App Engine tarafında: kullanıcı kimliğini UserInfo API kullanarak okumak için erişim belirtecini kullanın. Bu temelde OpenID Connect kullanıyor!
- Daha sonra, kullanıcının kimliğini doğrulamak için UserInfo API'sinden aldığınız bilgileri kullanabilirsiniz. UserInfo API'sinden alacağınız e-posta ve kullanıcı kimliği, AppEngine's UserService'den alacağınız e-posta ve kullanıcı kimliğine eşdeğerdir => buna güvenebilirsiniz!
PS: Ben this article Android AccountManager kullanarak OAuth 2 belirteçleri başlamıştı tanımladı. Önceden Ice Cream Sandwich yazılmıştır ancak atlamalıyım hala geçerli. Temel olarak authTokenType
'un oauth2:{scopes}
olması gerekir, örneğin Görevler API'sı için oauth2:https://www.googleapis.com/auth/tasks
. Bunu şimdi yapmanın daha iyi yolları olabilir.
sen baktın mı? Otomatik olarak sizin için gerekli kodu oluşturur. –
Gerçekten kullanmamıştım, ama IIRC, kapsam tüm uygulamanız. Yani 'http://myapp.appspot.com' –
gibi bir şey "App Engine bağlı android projeye" baktım ve OAuth değil ClientLogin kullanır. Kapsam olarak tam etki alanı çalışabilir, bunu deneyeceğim. –