Uygulamamda, Facebook oturum bilgilerini (jeton ve son kullanma tarihi) sunucumdan geçirerek kimlik doğrulamayı (oturum açma) deniyorum.Session.isOpened() == true ama Session.getAccessToken() == ""
- aktif facebook oturumu alma şöyledir: Uygulamanın sunucuya
Benim giriş dizisidir.
- Oturum geçerliyse, jetonu alın ve sunucuya gönderin.
Ve kodunda:
Session session = Session.getActiveSession();
if(session != null && session.isOpened() && !didLogin) {
didLogin = true;
String token = session.getAccessToken();
Date expires = session.getExpirationDate();
loginWithFacebookSession(token, expires);
}
Ben özellikle token
bir olduğunu, aniden, sadece iyi çalışıyor bu bir kaç ay sonra, bilgi sunucusuna gönderiliyor olduğu zaman geçerli değildir fark etmiş boş dize ve expires
geçersiz bir tarih.
private static final Date MIN_DATE = new Date(Long.MIN_VALUE);
private static final Date ALREADY_EXPIRED_EXPIRATION_TIME = MIN_DATE;
private static final Date DEFAULT_LAST_REFRESH_TIME = new Date();
static AccessToken createEmptyToken(List<String> permissions) {
return new AccessToken("", ALREADY_EXPIRED_EXPIRATION_TIME, permissions, AccessTokenSource.NONE,
DEFAULT_LAST_REFRESH_TIME);
}
Bu arada bir yerlerde, Facebook SDK yaratıyor anlamına gelir:
Facebook SDK üzerinden (versiyon 3.0.1) biraz gittikten sonra, herhalde benim hata temelinin ne benekli boş bir jeton ve SessionState.Category.OPENED_CATEGORY
ile döndürme.
Gerçekte bilgi yokken neden true
döndürüyor? Farklı bir mülk kontrol etmeli miyim? Bu Facebook'un SDK'sında bir hata mı?
DÜZENLEME: at Facebook'a bu Bildirilen
: https://developers.facebook.com/bugs/121924628017965
nasıl aktif oturumu ayarı/oturumları açıyoruz doğru olup olmadığını kontrol? –
"UiLifecycleHelper" sınıfını [Facebook geliştiricileri web sitesinde] belgelenmiş şekilde kullanıyorum (https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/) – thepoosh
Belki de oturum OPENED_TOKEN_UPDATED durumunda, bu simge değişti, ancak oturum hala açık durumda. – 5agado