KAP*_*OID 3 android facebook login native single-sign-on
我在Android应用程序中登录facebook用户有问题.我希望用户使用他们的Facebook帐户登录我的系统但是当我点击登录按钮时,Facebook本机应用程序启动,用户输入电子邮件和密码,然后本机应用程序关闭,我的应用程序再次启动 我不想使用原生应用程序进行此登录进程我想打开Facebook登录弹出窗口,就像其他手机没有Facebook本机应用程序.
我怎样才能做到这一点?谢谢
编辑:
我使用以下方法登录
protected void loginToFacebook()
{
if( !mFacebook.isSessionValid() ) {
Toast.makeText(mActivity, "logining", Toast.LENGTH_SHORT).show();
mFacebook.authorize(mActivity,permissions, new LoginDialogListener());
}
else {
try {
JSONObject json = Util.parseJson(mFacebook.request("me"));
String facebookID = json.getString("id");
String firstName = json.getString("first_name");
String lastName = json.getString("last_name");
String email = json.getString("email");
Toast.makeText(mActivity, mFacebook.getAccessToken()+email+"-" + firstName + " " + lastName + ". No need to re-authorize.", Toast.LENGTH_SHORT).show();
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();
}
catch( Exception error ) {
Toast.makeText( mActivity, error.toString(), Toast.LENGTH_SHORT).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
听取回应
public final class LoginDialogListener implements DialogListener {
public void onComplete(Bundle values) {
try {
//The user has logged in, so now you can query and use their Facebook info
JSONObject json = Util.parseJson(mFacebook.request("me"));
String facebookID = json.getString("id");
String firstName = json.getString("first_name");
String lastName = json.getString("last_name");
String email = json.getString("email");
Toast.makeText( mActivity, mFacebook.getAccessToken() +email+"-" + firstName + " " + lastName + "!", Toast.LENGTH_SHORT).show();
SessionStore.save(mFacebook, mActivity);
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();
}
catch( Exception error ) {
Toast.makeText( mActivity, error.toString(), Toast.LENGTH_SHORT).show();
}
}
public void onFacebookError(FacebookError error) {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
public void onError(DialogError error) {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
public void onCancel() {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
如果本机应用程序启动我的dialoglistenner不起作用,但如果基于Web的登录弹出窗口启动我的监听器工作正常.
任何的想法?
请更新以下应用程序代码.
mFacebook.authorize(mActivity, permissions, Facebook.FORCE_DIALOG_AUTH,
new LoginDialogListener());
Run Code Online (Sandbox Code Playgroud)
代替
mFacebook.authorize(mActivity, permissions, new LoginDialogListener());
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅以下链接
| 归档时间: |
|
| 查看次数: |
4610 次 |
| 最近记录: |