我尝试使用LinkedIn sdk登录,但它没有用.我有一个按钮,我写入onClick方法:
if (view.getId() == btnLinkedinLogin.getId()){
LISessionManager.getInstance(getActivity()).init(getActivity(), Scope.build(Scope.R_FULLPROFILE), new AuthListener() {
@Override
public void onAuthSuccess() {
Log.d(TAG, "succesful linkedin login");
((MainActivity)getActivity()).showFragment("Tile");
}
@Override
public void onAuthError(LIAuthError error) {
Log.d(TAG, "failed linkedin login. Error: " + error.toString());
}
}, false);
}
Run Code Online (Sandbox Code Playgroud)
我重写onActivityResult方法,如下所示:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
LISessionManager.getInstance(getActivity().getApplicationContext()).onActivityResult(getActivity(), requestCode, resultCode, data);
// super.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行我的应用程序并单击登录按钮,则会显示linkedin徽标,但在隐藏后,我的应用程序不会调用AuthListener方法...
我已经创建了我的linkedin应用程序并设置了包名称和哈希值.
我在日志中看到:请求是https://www.linkedin.com/uas/mobilesdk/authorize scope = r_fullprofile&duid = 5770a1bf-2567-4fd1-9358-b762856df6d3&packageName = com.beee&packageHash = 8dRCxNsk3LZTTd11iJmoiYaCpIA%3D&csrfToken = ajax%3A1829388572167379991&userAuthorized =假
更新:我检查了我的linkedin配置文件,我在我的个人资料中看到了我的linkedin应用程序.如果我删除它,并尝试再次登录,现在我看到linkedin应用程序需要预先设置的屏幕,但在它没有调用任何方法之后...
SDK 似乎不支持来自 Fragment 的调用(我假设您在调用 getActivity() 后正在这样做)。我遇到了同样的问题,必须使用侦听器接口并让父活动调用 LISessionManager.init() 来解决它。
您还可以将这段代码添加到 onActivityResult() 方法中,以便读取结果的内容,这可能有助于确定您的请求是否遇到错误。
@Override
public void onActivityResult(
int requestCode,
int resultCode,
Intent data
) {
Bundle bundle = data.getExtras();
Set<String> setKeys = bundle.keySet();
for (String sKey : setKeys) {
Log.d(
TAG, String.format("Extra: (%s:%s)", sKey, bundle.get(sKey).toString()
);
}
// Rest of your code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
972 次 |
| 最近记录: |