LinkedIn集成Android移动SDK电子邮件ID无法获取

Ste*_*lla 2 android linkedin

我同意OAuth用户协议:

默认范围:r_basicprofile r_fullprofile

网址

private static final String host = "api.linkedin.com"; 
private static final String PROTECTED_URL_GET_CURRENT_USER_PROFILE = "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address,picture-url,industry)";
Run Code Online (Sandbox Code Playgroud)

除了电子邮件地址外,我还能得到所有的信息 谁知道为什么?

Har*_*dik 16

您必须在构建范围时指定电子邮件权限 Scope.R_EMAILADDRESS

例如.

private static Scope buildScope() {
    return Scope.build(Scope.R_BASICPROFILE, Scope.W_SHARE,Scope.R_EMAILADDRESS);
}
Run Code Online (Sandbox Code Playgroud)

linkedin网址

private static final String host = "api.linkedin.com";
private static final String topCardUrl = "https://" + host
            + "/v1/people/~:(id,first-name,last-name,public-profile-url,picture-url,email-address,picture-urls::(original))";
Run Code Online (Sandbox Code Playgroud)

这是登录代码

 public void login() {
        LISessionManager sessionManager = LISessionManager
                .getInstance(context);
        LISession session = sessionManager.getSession();
        boolean accessTokenValid = session.isValid();

        if (accessTokenValid) {
            getProfile();
        } else {

            LISessionManager.getInstance(context).init(context, buildScope(),
                    new AuthListener() {
                        @Override
                        public void onAuthSuccess() {
                            loginSuccess(LISessionManager.getInstance(context)
                                    .getSession().getAccessToken());

                        }

                        @Override
                        public void onAuthError(LIAuthError error) {
                            loginFailed(error);

                        }
                    }, true);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是为了获得个人资料

public void getProfile() {
        APIHelper apiHelper = APIHelper.getInstance(context);
        apiHelper.getRequest(context, topCardUrl, new ApiListener() {
            @Override
            public void onApiSuccess(ApiResponse s) {
                onProfileSuccess(s);

            }

            @Override
            public void onApiError(LIApiError error) {
                onProfileError(error);
            }
        });

    }
Run Code Online (Sandbox Code Playgroud)