Sunday, January 5, 2014

ESB + LinkedIn Connector+Business Analysis

As explained earlier a  connector allows you to interact with a third-party product's functionality and data from your message flow.Connectors allow you to connect to and interact with the APIs of services.So let me explain more on connector concept using LinkedIn Connector which will allow you to access and interact with the LinkedIn application.

To begin with I would like to talk about the  "Authentication" methodology for LinkedIn Connector.BTW I selected REST API over SOAP because of the fact  that the upcoming trend for services will be REST over the rest of the services.

Authentication:-

Follow the few easy steps below to make your first LinkedIn API call using OAuth 2.0.Still what is OAuth?

I am creating an application which needs to get your 1st degree connection list and if i want to know your LinkedIn credentials for that... what do you think?  

This is where OAuth comes into play, as it outlines an access-delegation/authorization framework that can be employed without the need of sharing passwords. It can be thought of as a special key that allows access to limited features and for a limited period of time without giving away full control.OAuth allows you to share your private resources (photos, videos, contact list, bank accounts) stored on one site with another site without having to hand out your username and password. Giving your email account password to a social network  site so they can look up your friends is the same thing as going to dinner and giving your ATM card and PIN code to the waiter when it’s time to pay. Any restaurant asking for your PIN code will go out of business, but when it comes to the web, users put themselves at risk sharing the same private information. OAuth to the rescue.

So now you want to get the  1st degree connection list  of mine from LinkedIn and i send the request to the LinkedIn authentication server.It send me an Authorization code back to the user and the user must make another request sending the token which she/he received earlier.Then the server replies with the access token and the refresh token.

Now the user must make another request to the LinkedIn  resource server using the access token which i received and via this call i could get the 1st degree connection list of ur's even without getting your user name and password.

Below image describes the above words in pictorial way.


LinkedIn Method Analysis:

LinkedIn API reference documentation  contains many groups and each group contains its relevant functionality list available for the users/developers in the format of methods.These are the methods implemented by  LinkedIn developers and exposed to the general public/ developers to use and develop their own applications.

Below displayed is the selected functionality list  amongst all the functionalities.

People Operations:
• getProfile-The Profile API returns a member's LinkedIn profile.
• getProfileFields - LinkedIn Members publish a variety of information about themselves on their member profile.
• getConnections - The Connections API returns a list of 1st degree connections for a user who has granted access to his/her account.
• peopleSearch - The People Search API returns information about people.
• accessOutOfNetworkProfiles - Presenting with people resources that are outside of the current member's three degrees.
                
Companies:
 
• companyLookup-Retrieves and displays one or more company profiles.
• getCompanyStatistics - The Company Statistics API provides the ability to retrieve statistics for a particular company page.
• searchCompanyPage-The Company Search API enables search across company pages.
• followCompanyPage-Members can follow companies to receive updates for company activities such as new job postings, employment changes, and new products

Jobs:
 
• viewJobs-The Jobs APIs provide access to view jobs and job data.
• searchJobs-The Job Search API enables search across LinkedIn's job postings.
• closeJobPost - Allow to close an existing job at LinkedIn.
• postJob - Allow to post a new job to LinkedIn. 
                
Share and social stream:
 
• shareResources - Through the Share API, you can enable users take full advantage of this functionality within your application.
• getNetworkUpdates - The Get Network Updates API returns the users network updates, which is the LinkedIn term for the user's feed. This call returns most of what shows up in the middle column of the LinkedIn.com home page, either for the member or the member's connections.
• sendActivity - The Post Network Update API allows you to send in an activity from your site to be posted to the first degree connections of the LinkedIn user.
                
Communication:
 
• invitePeople - The Invitation API allows your users to invite people they find in your application to their LinkedIn network.
• sendMessage - LinkedIn offers a simple API for sending messages via LinkedIn between two or more individuals connected to the member sending the message.
                
Status Updates:

 
• getStatus - Get the current status of a user who has granted permission to the application 

Note: Analysing the Jobs API of LinkedIn some if the methods can not be used as they require special permission levels of LinkedIn.
EX:

Posting a Job:
This is a closed program, available to select partners at LinkedIn's discretion. You must contact LinkedIn and sign an API agreement before implementing or using the Job Posting API.


Searching a Job:
The Jobs APIs provide access to view jobs and job data. Jobs API is a part of our Vetted API Access Program. You must apply here and get LinkedIn's approval before using this API.


Job Lookup:
Job Search API is a part of our Vetted API Access Program. You must apply here and get LinkedIn's approval before using this API.


Closing a Job:
Job Posting API is to close an existing job at LinkedIn. This is a closed API. You must contact us, meet certain criteria, and sign an API agreement to use it.


It is very important to identify such restrictions as it can minimize the implementation time and utilize that for some other tasks of the project.

1 comment: