android - 为什么我无法使用 Linkedin android sdk 登录?

标签 android linkedin

我尝试使用 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);
    }

我像这样覆盖 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);
}

但是如果我运行我的应用程序并单击登录按钮,则会显示 linkedin Logo ,但之后它将被隐藏并且我的应用程序不会调用 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=false

更新: 我检查了我的 linkedin 个人资料,我在我的个人资料中看到了我的 linkedin 应用程序。如果我删除它并尝试再次登录,现在我会看到 linkedin 应用程序需要权限的屏幕,但在它不调用任何方法之后......

最佳答案

SDK 似乎不支持来自 Fragment 的调用(我假设您正在调用 getActivity())。我遇到了同样的问题,不得不使用监听器接口(interface)并让父 Activity 调用 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
}

关于android - 为什么我无法使用 Linkedin android sdk 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400632/

相关文章:

java - 如何使用 sharedpreference 将 favorite_List Activity 添加到 Android 中的 ListView Activity

oauth-2.0 - 来自 r_basicprofile 的 LinkedIn API 2 和 VanityName

http - 如何在 LinkedIn OAuth 2.0 身份验证中获取访问 token 应该作为 POST 请求进行?

android - 为什么在 Android 中不调用 onActivityResult?

java - TextView的宽度,动态包裹到ImageView的宽度中

linkedin - [Linkedin]分页详细信息不适用于带有投影的 "organizationalEntityAcls"API 端点

android - LinkedIn 无法在 WebView 中注销

rest - 有没有办法在没有用户的情况下访问 LinkedIn API

android - 在 Activity 过渡动画期间保持 Action Bar 稳定

android - Google Fit API 在内部测试中不起作用