[英]In Android, why is Facebook signup not working if Facebook installed in the device already?
I have tried to use Facebook in my application, this works fine on device that doesn't have Facebook app installed. 我试图在我的应用程序中使用Facebook,但在未安装Facebook应用程序的设备上运行正常。 But this fails to give the session while there is Facebook already installed on the device. 但是,如果设备上已经安装了Facebook,则无法进行会话。
public void facebookSignIn(CallbackContext callContext){
try {
isFacebookLogin = true;
getActivity().runOnUiThread(new Runnable() {
public void run() {
mConnectionProgressDialog.show(); }
});
this.callbackContext = callContext;
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
Log.d("facebook","session open");
if (session.isOpened()) {
// make request to the /me API
Request.newMeRequest(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
String userID = user.getId();
callbackContext.success(userID);
Toast.makeText(MDLIVEMain.this, user.getName() + " is connected.", Toast.LENGTH_LONG).show();
} else {
// TODO: handle exception
callbackContext.error(MDLiveLocalizationSystem.localizedStringForKey("nat_authen_failure"));
}
getActivity().runOnUiThread(new Runnable() {
public void run() {
mConnectionProgressDialog.dismiss();
}
});
}
}).executeAsync();
}
}
});
}catch (Exception e){
e.printStackTrace();
callbackContext.error(MDLiveLocalizationSystem.localizedStringForKey("nat_authen_failure"));
GATrackingExceptions.trackExceptions(e.getLocalizedMessage(), MDLIVEMain.this);
getActivity().runOnUiThread(new Runnable() {
public void run() {
mConnectionProgressDialog.dismiss();
}
});
}
}
Here is onactivityResult code 这是onactivityResult代码
@Override
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
try {
CordovaPlugin callback = this.activityResultCallbacks;
if (callback != null) {
callback.onActivityResult(requestCode, responseCode, intent);
}
Log.d("isFacebookLogin",isFacebookLogin+"");
if(isFacebookLogin){
try {
isFacebookLogin = false;
Session.getActiveSession().onActivityResult(this, requestCode, responseCode, intent);
}catch (Exception e){
e.printStackTrace();
}
}else {
if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) {
mConnectionResult = null;
mPlusClient.connect();
}
getActivity().runOnUiThread(new Runnable() {
public void run() {
mConnectionProgressDialog.dismiss();
}
});
if (requestCode == PASSCODE_RESULT_PAGE) {
if (responseCode == RESULT_OK) {
activityVisible = true;
this.callbackContext.success(intent.getExtras().getString("passcode_pin"));
} else {
this.callbackContext.success(intent.getExtras().getString("passcode_pin"));
isFromPasscodePage = true;
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
I have answered for this type of (Hash for fb) issue here : 我已经在这里为这种类型的(fb哈希)问题回答了:
Facebook Login and Post To Wall works for first time only Facebook登录和张贴到墙仅首次使用
Note: Fb gives issues bcz of not valid Hash, for that you have to generate a valid hash. 注意:Fb给出了无效哈希的问题bcz,因为您必须生成有效哈希。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.