Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access to connections denied new linkedin Android SDK

I am getting "access to connections denied" error using new Linkedin Android SDK as per documentation and Linkedin new sample app:-

APIHelper apiHelper = APIHelper
                            .getInstance(getApplicationContext());
                    apiHelper.getRequest(ApiActivity.this, "https://" + host
                + "/v1/people/~/connections:(first-name,last-name,public-profile-url)",
                            new ApiListener() {
                                @Override
                                public void onApiSuccess(ApiResponse s) {
                                    ((TextView) findViewById(R.id.response))
                                            .setText(s.toString());
                                }

                                @Override
                                public void onApiError(LIApiError error) {
                                    ((TextView) findViewById(R.id.response))
                                            .setText(error.toString());
                                }
                            });
like image 617
Ankush Badlas Avatar asked Nov 01 '22 04:11

Ankush Badlas


1 Answers

Agree OAuth User Agreement: Neither r_basicprofile nor r_fullprofile is checked for getting access to user profile.follow url can be use to fetch profile information from LinkedIn.

Default Scope:
    r_basicprofile
    r_fullprofile   

User the following urls to fetch LinkedIn data.

    private static final String HOST = "api.linkedin.com";
    private static final String FETCH_BASIC_INFO = "https://" + host + "/v1/people/~:(id,first-name,last-name,headline,location,industry)";
    private static final String FETCH_CONTACT = "https://" + host + "/v1/people/~:(num-connections,email-address,phone-numbers,main-address)";
    private static final String FETCH_PROFILE_PIC = "https://" + host + "/v1/people/~:(picture-urls::(original))";
    private static final String SHARE_URL = "https://" + host + "/v1/people/~/shares";

Don't forget to set permission for accessing above info at both mobile app as well as while registering app in LinkedIn


 private static Scope buildScope() {
 return Scope.build(Scope.R_BASICPROFILE, Scope.W_SHARE, Scope.R_EMAILADDRESS, Scope.R_CONTACTINFO); }

Example code follows

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

                }

                @Override
                public void onAuthError(LIAuthError error) {

                }
            }, true);
like image 194
Anoop M Maddasseri Avatar answered Nov 11 '22 07:11

Anoop M Maddasseri