如何禁用facebook本机应用程序进行用户登录 [英] How to disable facebook native app for user 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 +,不需要重新授权。,Toast.LENGTH_SHORT).show();
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();
}
catch(异常错误){
Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
}
}
}
响应
public final class LoginDialogListener实现DialogListener {
public void onComplete(Bundle values){
try {
//用户已经登录,所以现在你可以查询和使用他们的Facebook信息
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(异常错误){
Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
}
}
public void onFacebookError(FacebookError error){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG )。显示();
}
public void onError(DialogError error){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG).show() ;
}
public void onCancel(){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG).show();
}
}
如果本机应用启动我的dialoglistenner不起作用基于Web的登录弹出窗口启动我的听众工作良好。
任何想法?
请更新以下代码。
mFacebook.authorize(mActivity,permissions,Facebook.FORCE_DIALOG_AUTH,
new LoginDialogListener());
而不是
code> mFacebook.authorize(mActivity,permissions,new LoginDialogListener());
有关详细信息,请参阅以下链接
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屋!