Kar*_*lis 12 android facebook facebook-android-sdk facebook-sdk-3.0
我已经设置了简单的Facebook登录.对于Android 2.3.6一切正常,用户获得提示登录对话框,输入数据和应用程序继续.我认为这是android版本的错误,但是当手机上安装了facebook应用程序时,它会发现登录不起作用!
测试了这一点:Galaxy Ace 2.3.6 HTC Desire 4.1.2 Galaxy Note 4.1.2 Android模拟器4.1.2
即使是facebook样本也无法正常工作!
每次应用程序执行时 - else {
Log.d("SESSION NOT OPENED", "SESSION NOT OPENED");
}
会议似乎没有打开,但为什么呢?按照本指南 - https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/
码:
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(final Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
Log.d("Access_token", session.getAccessToken());
}
}
});
} else {
Log.d("SESSION NOT OPENED", "SESSION NOT OPENED");
}
}
});
Run Code Online (Sandbox Code Playgroud)
ANi*_*nJa 10
我正在为那些正在使用的人写这个答案 Facebook SDK 4.X
你可以用以下两种方式之一打开facebook的登录门户网站:
如果你有一个Android设备Android 1.9.X和Facebook App安装在Native Login这里名为Method的设备,你不需要使用FacebookWebView
如果您尚未安装Facebook App在Android设备中,那么最好使用它WebView
所以这个Facebook提供3 Constants
NATIVE_ONLY(当您只想在Facebook App中打开时使用)WEB_ONLY(WebView仅在打开时使用)NATIVE_WITH_FALLBACK(推荐的Facebook检测和opne,webView如果没有安装应用程序)请查看以下链接以获取详细信息 https://developers.facebook.com/docs/reference/android/current/class/LoginButton/ https://developers.facebook.com/docs/facebook-login/android/v2.2#troubleshooting
LoginButton.setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK);
LoginButton.setLoginBehavior(LoginBehavior.NATIVE_ONLY);
LoginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);
Run Code Online (Sandbox Code Playgroud)
查看步骤4的底部:https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/
如果您没有正确输入您的应用程序密钥哈希,Facebook通过WebView弹出窗口登录(如果未安装该应用程序)仍然可以工作,但通过本机Facebook应用程序登录将不会.
您应该在LogCat中看到此异常:
com.facebook.http.protocol.ApiException: remote_app_id does not match stored id
Run Code Online (Sandbox Code Playgroud)
Facebook SDK会打印出异常,因此无论如何还要检查是否存在其他问题.
Get you hash key using this function for both(debug and release apk) and put it in your app in developer.facebook.com/apps
private void calculateHashKey(String yourPackageName) {
try {
PackageInfo info = getPackageManager().getPackageInfo(
yourPackageName,
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:",
Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
this help me a lot.. Hope this will help you too..
| 归档时间: |
|
| 查看次数: |
29783 次 |
| 最近记录: |