Categories: JavaWeb

Java – How to Get Company Updates using LinkedIn API

This article represents code samples and changes that need to be done in original Linkedin-J framework (open-source) to get company updates of different types such as following:

  • Job Posting
  • Status Updates
  • New Product

Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.

 

Code Samples & Steps to Get Company Updates

Following files need to be changed along with mentioned changes:

  • LinkedinApiUrls.properties: Following code needs to be added under APIs mentioned under companies:
    com.google.code.linkedinapi.client.getCompanyStatusUpdates=http://api.linkedin.com/v1/companies/{id}/updates{queryParameters}
    
  • LinkedInApiUrls.java: Following code needs to be added:
    public static final String GET_COMPANY_STATUS_UPDATES = linkedInApiUrls.getProperty("com.google.code.linkedinapi.client.getCompanyStatusUpdates");
    
  • CompaniesApiClient.java: Following APIs need to be added:
        
    /**
     * Gets the company by id.
     * 
     * @param id the id
     * 
     * @return the company by id
     */public Updates getCompanyStatusUpdates(String id);
       
        
    /**
     * Get comanpy updates by companyid and event type 
     * @param id
     * @param eventType
     * @return
     */public Updates getCompanyStatusUpdates(String id, String eventType );
    
    /**
     * Get company updates by companyid, event type, start index, count
     * @param id
     * @param eventType
     * @param start
     * @param count
     * @return
     */public Updates getCompanyStatusUpdates(String id, String eventType, int start, int count);
    
  • BaseLinkedInApiClient.java: Following implementations need to be added:
        
     @Override
     public Updates getCompanyStatusUpdates(String id) {
            assertNotNullOrEmpty("id", id);
    
            LinkedInApiUrlBuilder builder = createLinkedInApiUrlBuilder(LinkedInApiUrls.GET_COMPANY_STATUS_UPDATES);
            String                apiUrl  = builder.withEmptyField(ParameterNames.FIELD_SELECTORS).withField(ParameterNames.ID,
                     id).buildUrl();
    
            return readResponse(Updates.class, callApiMethod(apiUrl));
     }
     
            @Override
             public Updates getCompanyStatusUpdates(String id, String eventType) {
                    assertNotNullOrEmpty("id", id);
                    assertNotNullOrEmpty("eventtype", eventtype);
                    LinkedInApiUrlBuilder builder = createLinkedInApiUrlBuilder(LinkedInApiUrls.GET_COMPANY_STATUS_UPDATES);
                    String apiUrl = builder.withEmptyField(ParameterNames.FIELD_SELECTORS)
                                           .withField(ParameterNames.ID, id)
                                           .withParameter(ParameterNames.EVENT_TYPE, eventType).buildUrl();
    
                    return readResponse(Updates.class, callApiMethod(apiUrl));
             }
     
            @Override
            public Updates getCompanyStatusUpdates(String id, String eventType,
                           int start, int count) {
                    assertNotNullOrEmpty("id", id);
    
                    LinkedInApiUrlBuilder builder = createLinkedInApiUrlBuilder(LinkedInApiUrls.GET_COMPANY_STATUS_UPDATES);
                    String apiUrl = builder.withEmptyField(ParameterNames.FIELD_SELECTORS)
                                    .withField(ParameterNames.ID, id)
                                    .withParameter(ParameterNames.EVENT_TYPE, eventType)
                                    .withParameter(ParameterNames.START, String.valueOf(start))
                                    .withParameter(ParameterNames.COUNT, String.valueOf(count))
                                     .buildUrl();
    
                    return readResponse(Updates.class, callApiMethod(apiUrl));
            }
    

Once above files have been modified, you are all set to access the company status updates using following code:

public static void main(String[] args) {

        String consumerKeyValue = "your-consumer-key";
        String consumerSecretValue = "your-consumer-secret";

        String accessTokenValue = "use-your-access-token-value";
        String tokenSecretValue = "use-your-token-secret-value";

        final LinkedInApiClientFactory factory = LinkedInApiClientFactory.newInstance(consumerKeyValue, consumerSecretValue);
        final LinkedInApiClient client = factory.createLinkedInApiClient(accessTokenValue, tokenSecretValue);
 
        Updates updates = client.getCompanyStatusUpdates( "1441", "status-update", 10, 10 );
        List ulist  = updates.getUpdateList();
        if( ulist != null ) {
                Iterator uiter = ulist.iterator();
                while( uiter.hasNext() ) {
                        Update update = uiter.next();
                        CompanyStatusUpdate csu = update.getUpdateContent().getCompanyStatusUpdate();
                        if( csu != null ) {
                            System.out.println( "Status Updates: " + cssu.getShare().getComment() );
                        }
                }
        }
}

 

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.

Recent Posts

Creating a RAG Application Using LangGraph: Example Code

Retrieval-Augmented Generation (RAG) is an innovative generative AI method that combines retrieval-based search with large…

4 days ago

Building a RAG Application with LangChain: Example Code

The combination of Retrieval-Augmented Generation (RAG) and powerful language models enables the development of sophisticated…

5 days ago

Building an OpenAI Chatbot with LangChain

Have you ever wondered how to use OpenAI APIs to create custom chatbots? With advancements…

6 days ago

How Indexing Works in LLM-Based RAG Applications

When building a Retrieval-Augmented Generation (RAG) application powered by Large Language Models (LLMs), which combine…

1 week ago

Retrieval Augmented Generation (RAG) & LLM: Examples

Last updated: 25th Jan, 2025 Have you ever wondered how to seamlessly integrate the vast…

1 week ago

What are AI Agents? How do they work?

Artificial Intelligence (AI) agents have started becoming an integral part of our lives. Imagine asking…

4 weeks ago