如何禁用用户登录Facebook的本机应用程序 [英] How to disable facebook native app for user login
问题描述
我在我的Android应用程序与Facebook用户登录的问题。我希望用户使用他们的Facebook帐户登录我的系统,但是当我点击登录按钮,Facebook的本机应用程序启动和用户输入电子邮件地址和密码,然后本机应用程序关闭,我的应用程序再次启动。我不想使用本机应用程序此登录proccess我想打开Facebook的登录弹出只是像其他手机不具备Facebook的本地应用程序。
我怎样才能做到这一点? 谢谢
编辑:
我用下面的方法登录
保护无效loginToFacebook()
{
如果(!mFacebook.isSessionValid()){
Toast.makeText(mActivitylogining,Toast.LENGTH_SHORT).show();
mFacebook.authorize(mActivity,权限,新LoginDialogListener());
}
其他 {
尝试 {
JSONObject的JSON = Util.parseJson(mFacebook.request(我));
字符串facebookID = json.getString(ID);
字符串的firstName = json.getString(FIRST_NAME);
字符串的lastName = json.getString(姓氏);
字符串email = json.getString(电子邮件);
Toast.makeText(mActivity,mFacebook.getAccessToken()+电子邮件+ - +的firstName ++ lastName的+无需重新检查,Toast.LENGTH_SHORT。).show();
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail =电子邮件;
mFacebookListener.onFacebookLoginSelected();
}
赶上(异常错误){
Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
}
}
}
有关监听的响应
公共final类LoginDialogListener实现DialogListener {
公共无效的onComplete(束值){
尝试 {
//用户已登录,那么现在就可以查询和使用他们的Facebook信息
JSONObject的JSON = Util.parseJson(mFacebook.request(我));
字符串facebookID = json.getString(ID);
字符串的firstName = json.getString(FIRST_NAME);
字符串的lastName = json.getString(姓氏);
字符串email = json.getString(电子邮件);
Toast.makeText(mActivity,mFacebook.getAccessToken()+电子邮件+ - +的firstName ++ lastName的+,Toast.LENGTH_SHORT!).show();
SessionStore.save(mFacebook,mActivity);
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail =电子邮件;
mFacebookListener.onFacebookLoginSelected();
}
赶上(异常错误){
Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
}
}
公共无效onFacebookError(FacebookError错误){
Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
}
公共无效onerror的(DialogError错误){
Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
}
公共无效OnCancel的(){
Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
}
}
如果本机应用程序开始我的dialoglistenner不工作,但如果基于网络的登录弹出开始我listenner做工不错。
你知道吗?
请更新跌破$ C $您的应用程序下进行。
mFacebook.authorize(mActivity,权限,Facebook.FORCE_DIALOG_AUTH,
新LoginDialogListener());
而不是
mFacebook.authorize(mActivity,权限,新LoginDialogListener());
和见下面的链接了解更多信息。
<一个href="http://stackoverflow.com/questions/10815813/android-facebook-authorization-can-not-login-when-official-facebook-app-instal/10816381#10816381">Facebook登录文档
I have a problem with facebook user login in my android application. I want users use their facebook account to login my system but when I click login button facebook native app starts and user enters email and password then native app closes and my app starts again. I dont want to use native app for this login proccess i want to open facebook login pop-up only like the other phones that does not have facebook native app.
How can i do this? thanks
Edit:
I use the methods below for login
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();
}
}
}
For listening the response
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();
}
}
If native app starts my dialoglistenner does not work but if web based login pop-up starts my listenner works good.
Any Idea?
Please update below code of your application.
mFacebook.authorize(mActivity, permissions, Facebook.FORCE_DIALOG_AUTH,
new LoginDialogListener());
instead of
mFacebook.authorize(mActivity, permissions, new LoginDialogListener());
And see below link for more information
这篇关于如何禁用用户登录Facebook的本机应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!