如何在android中获取linkedin连接详细信息(生日等)

时间:2014-12-11 07:19:16

标签: java android api linked-list linkedin

我无法获取linkedin连接详细信息;我只能获取默认详细信息,如名字和姓氏,ID等。但我想获取连接dob,电子邮件等..

share = (Button) findViewById(R.id.share);
            name = (TextView) findViewById(R.id.name);
            et = (EditText) findViewById(R.id.et_share);
            login = (Button) findViewById(R.id.login);
            photo = (ImageView) findViewById(R.id.photo);

            login.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    linkedInLogin();
                }
            });

            // share on linkedin
            share.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    String share = et.getText().toString();
                    if (null != share && !share.equalsIgnoreCase("")) {
                        OAuthConsumer consumer = new CommonsHttpOAuthConsumer(Config.LINKEDIN_CONSUMER_KEY, Config.LINKEDIN_CONSUMER_SECRET);
                        consumer.setTokenWithSecret(accessToken.getToken(), accessToken.getTokenSecret());
                        DefaultHttpClient httpclient = new DefaultHttpClient();
                        HttpPost post = new HttpPost("https://api.linkedin.com/v1/people/~/shares");
                        try {
                            consumer.sign(post);
                        } catch (OAuthMessageSignerException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (OAuthExpectationFailedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (OAuthCommunicationException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } // here need the consumer for sign in for post the share
                        post.setHeader("content-type", "text/XML");
                        String myEntity = "<share><comment>"+ share +"</comment><visibility><code>anyone</code></visibility></share>";
                        try {
                            post.setEntity(new StringEntity(myEntity));
                            org.apache.http.HttpResponse response = httpclient.execute(post);
                            Toast.makeText(LinkedInSampleActivity.this,
                                    "Shared sucessfully", Toast.LENGTH_SHORT).show();
                        } catch (UnsupportedEncodingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (ClientProtocolException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }else {
                        Toast.makeText(LinkedInSampleActivity.this,
                                "Please enter the text to share",
                                Toast.LENGTH_SHORT).show();
                    }

                }
            });
        }

        private void linkedInLogin() {
            ProgressDialog progressDialog = new ProgressDialog(
                    LinkedInSampleActivity.this);

            LinkedinDialog d = new LinkedinDialog(LinkedInSampleActivity.this,
                    progressDialog);
            d.show();

            // set call back listener to get oauth_verifier value
            d.setVerifierListener(new OnVerifyListener() {
                @Override
                public void onVerify(String verifier) {
                    try {
                        Log.i("LinkedinSample", "verifier: " + verifier);

                        accessToken = LinkedinDialog.oAuthService
                                .getOAuthAccessToken(LinkedinDialog.liToken,
                                        verifier);
                        LinkedinDialog.factory.createLinkedInApiClient(accessToken);
                        client = factory.createLinkedInApiClient(accessToken);
                        // client.postNetworkUpdate("Testing by Mukesh!!! LinkedIn wall post from Android app");
                        Log.i("LinkedinSample",
                                "ln_access_token: " + accessToken.getToken());
                        Log.i("LinkedinSample",
                                "ln_access_token: " + accessToken.getTokenSecret());
                        Person p = client.getProfileForCurrentUser();

                        name.setText("Welcome " + p.getFirstName() + " "
                                + p.getLastName()+"DOB"+p.getDateOfBirth());



                        name.setVisibility(0);
                        login.setVisibility(4);
                        share.setVisibility(0);
                        et.setVisibility(0);

                        userConnections();

                    } catch (Exception e) {
                        Log.i("LinkedinSample", "error to get verifier");
                        e.printStackTrace();
                    }
                }

                private void userConnections() {
                    final Set<ProfileField> connectionFields = EnumSet.of(ProfileField.ID, 
                            ProfileField.FIRST_NAME, 
                            ProfileField.LAST_NAME, 
                            **ProfileField.DATE_OF_BIRTH,**
                            ProfileField.PHONE_NUMBERS


                            );

                    connections = client.getConnectionsForCurrentUser(connectionFields);

                    for (Person person : connections.getPersonList()) {
                        System.out.println("connections name"+person.getFirstName()+" "+person.getLastName()+":"+**person.getDateOfBirth()**+person.getId());
                        itemslist.add(person);
                    }
                    System.out.println("person arraylist count of my connections"+itemslist.size());

                }
            });

            // set progress dialog
            progressDialog.setMessage("Loading...");
            progressDialog.setCancelable(true);
            progressDialog.show();
        }

我试图获取我的连接的出生日期,但它在位置显示为空。

1 个答案:

答案 0 :(得分:0)

D.O.B。不是您可以获得连接的字段。请阅读文档 - “对于1度连接,您只能检索r_basicprofile成员权限可用的配置文件字段”

https://developers.linkedin.com/documents/connections-api