由网友(蝴蝶落在指尖)分享简介:我要重新登录的解析Facebook的用户不显示在解析使用保存TOKEN的Facebook的登录对话框。 我使用三种方法保存和恢复会话,但如何在 ParseFacebookUtils Facebook的对象使用它们 / * *保存访问令牌和到期日期,所以你不必把它拿来每个 * 时间 * /公共静态布尔保存(Face...![牛津剑桥等名校最新入学消息 重新开放申请信息汇总 最后关头拿下G5的offer](https://p.xsw88.cn/allimgs/daicuo/20230907/3904.png)
我要重新登录的解析Facebook的用户不显示在解析使用保存TOKEN的Facebook的登录对话框。
我使用三种方法保存和恢复会话,但如何在 ParseFacebookUtils
/ * *保存访问令牌和到期日期,所以你不必把它拿来每个 * 时间 * /公共静态布尔保存(Facebook的会话,上下文的背景下){ 编辑编辑= context.getShared preferences(KEY,Context.MODE_PRIVATE).edit(); editor.putString(令牌,session.getAccessToken()); editor.putLong(到期,session.getAccessExpires()); editor.putLong(LAST_UPDATE,session.getLastAccessUpdate()); 返回editor.commit();}/ * *恢复访问令牌,并从共享preferences到期日。 * /公共静态布尔恢复(Facebook的会话,上下文的背景下){ 共享preferences savedSession = context.getShared preferences(KEY,Context.MODE_PRIVATE); session.setTokenFromCache( savedSession.getString(TOKEN,空) savedSession.getLong(到期,0), savedSession.getLong(LAST_UPDATE,0)); 返回session.isSessionValid();}公共静态无效明确(上下文的背景下){ 编辑编辑= context.getShared preferences(KEY,Context.MODE_PRIVATE).edit(); editor.clear(); editor.commit();}
- 和我对以下登录之前恢复会话
ParseFacebookUtils.initialize(APP_ID); //恢复会话 恢复(ParseFacebookUtils.getFacebook(),这一点); //使用恢复的数据登录 ParseFacebookUtils.logIn(权限,LoginActivity.this, 新LogInCallback(){ @燮pressWarnings(德precation) @覆盖 公共无效完成(ParseUser用户,ParseException的E){ //登录后工作 ParseUser.enableAutomaticUser(); 保存(ParseFacebookUtils.getFacebook(),这一点); }});
![牛津剑桥等名校最新入学消息 重新开放申请信息汇总 最后关头拿下G5的offer](https://p.xsw88.cn/allimgs/daicuo/20230907/3904.png)
但它不工作,它总是打开的Facebook的登录对话框。
解决方案我通过调用allowLoginUI =虚假的onCreate()我活动的方法openActiveSession方法解决它。我的code是 -
ParseFacebookUtils.getSession()。openActiveSession(这一点,假的,新Session.StatusCallback(){@覆盖公共无效呼叫(会话的会话,SessionState会状态,异常除外){ 如果(session.isOpened()){ ParseFacebookUtils.logIn(LoginActivity.this, 新LogInCallback(){ @覆盖 公共无效完成(ParseUser用户,ParseException的E){ //用户登录 } }); } 其他 { //发现错误 } } });
I want to re-login a Facebook user in parse without showing login dialog of Facebook using saved TOKEN in Parse.
I am using 3 methods for save and restore session but how to use them in Facebook object of ParseFacebookUtils
?
/*
* Save the access token and expiry date so you don't have to fetch it each
* time
*/
public static boolean save(Facebook session, Context context) {
Editor editor = context.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.putString(TOKEN, session.getAccessToken());
editor.putLong(EXPIRES, session.getAccessExpires());
editor.putLong(LAST_UPDATE, session.getLastAccessUpdate());
return editor.commit();
}
/*
* Restore the access token and the expiry date from the shared preferences.
*/
public static boolean restore(Facebook session, Context context) {
SharedPreferences savedSession = context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
session.setTokenFromCache(
savedSession.getString(TOKEN, null),
savedSession.getLong(EXPIRES, 0),
savedSession.getLong(LAST_UPDATE, 0));
return session.isSessionValid();
}
public static void clear(Context context) {
Editor editor = context.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
}
And i am restoring session by following before login-
ParseFacebookUtils.initialize(APP_ID);
// restore session
restore(ParseFacebookUtils.getFacebook(), this);
// login using restored data
ParseFacebookUtils.logIn(permissions, LoginActivity.this,
new LogInCallback() {
@SuppressWarnings("deprecation")
@Override
public void done(ParseUser user, ParseException e) {
// work after login
ParseUser.enableAutomaticUser();
save(ParseFacebookUtils.getFacebook(),this);
}});
But it's not working it always opens login dialog of facebook.
解决方案I solved it by calling openActiveSession method with allowLoginUI = false in onCreate() method of my Activity. My code is-
ParseFacebookUtils.getSession().openActiveSession(this, false, new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception)
{
if (session.isOpened()) {
ParseFacebookUtils.logIn( LoginActivity.this,
new LogInCallback() {
@Override
public void done(ParseUser user, ParseException e) {
// user logged in
}
});
}
else
{
// error found
}
}
});
相关推荐
最新文章