[英]Android Facebook API single sign-on?
我对Android Facebook API singleSignOn()方法有疑问。
下面的代码使用包“com.facebook.katana”和类“com.facebook.katana.proxyAuth”。
问题是我在Eclipse的安装中没有这样的软件包和类,但是使用这些软件包和类的活动似乎可以正常工作-即使我没有。 为什么?
这条线
activity.startActivityForResult(intent, activityCode);
即使我没有正确的程序包也不会引发ActivityNotFoundException
错误?
代码在这里:
private boolean startSingleSignOn(Activity activity, String applicationId,
String[] permissions, int activityCode) {
boolean didSucceed = true;<br>
Intent intent = new Intent();
intent.setClassName("com.facebook.katana",
"com.facebook.katana.ProxyAuth");
intent.putExtra("client_id", applicationId);
if (permissions.length > 0) {
intent.putExtra("scope", TextUtils.join(",", permissions));
}
// Verify that the application whose package name is
// com.facebook.katana.ProxyAuth has the expected
// Facebook app signature.
if (!validateAppSignatureForIntent(activity, intent)) {
Log.d("Facebook - startSignleSignOn", "AppSign Validation Failed, return didsucced false");
return false;
}
mAuthActivity = activity;
mAuthPermissions = permissions;
mAuthActivityCode = activityCode;
try {
activity.startActivityForResult(intent, activityCode);
} catch (ActivityNotFoundException e) {
Log.d("Facebok - startSingleSignOn", "Activity not found exception, return didsucced false");
didSucceed = false;
}
return didSucceed;
}
没关系。 我发现当代码无法找到“com.facebook.katana”包和“com.facebook.katana.ProxyAuth”类时,代码会自动使用webview Facebook授权。
我相信这些包和类都包含在Facebook应用程序中。 因此,如果我有包含“ com.facebook.katana.ProxyAuth”的Facebook官方应用程序,则我的应用程序使用SigleSignOn方法,该方法可在用户登录到Facebook官方应用程序时跳过我的应用程序的Facebook身份验证。 如果我没有Facebook官方应用程序,那么该应用程序使用传统的webview身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.