3. Our Mission: Connect the world’s professionals to make them more productive and successful
4. 85 Million Members Matthew Reye E-Business Manager, HP Anne Marie Perignon CFO, Wells Fargo SoumitraRajan Pre-Sales Engineer Apple Rob Le Dir, Marketing Operations Aon Insurance Vinita Bhagda Sr. Product Manager Coca-Cola Nick Riccard Interactive Art Director VMware Mei Wu Lee Marketing Manager Verizon Veronica Capa Project Coordinator Google Patrick Wyser Sales Director Nokia George Kingsten Enterprise Sales Associate Accenture *Names used for examples only.
7. MBA Master’s Degree Bachelor’s Degree What I do now What I used to do 10 Years Ago…
8. Who Do I Recommend Today Languages Photo Colleagues Mentor International Experience Professional Articles Recommendations Events Startup Advisor Search Expert Reading List Entrepreneur Referrals Inventor Publications Groups
23. LinkedIn Labs linkedinlabs.com Collection of LinkedIn Hackday Winners Cool ideas and inspiration Working examples of the JavaScript APIs
24. JavaScript APIs Easy No “oAuth”, no “tokens”, no “signing” Simple Familiar HTML and JS Syntax Powerful All REST APIs still available Fun Watch the code
25. Sign in with LinkedIn <!DOCTYPE><html><head> <title>LinkedIn JavaScript API</title> <script type="text/javascript" src="http://platform.linkedin.com/in.js">api_key: 7TUS2_LeCD_vLuUE0L9ew35dh-tYtWkZDk4lQm6LYbcdVXgRELNWUMxl authorize: false </script></head><body> <script type="IN/Login"> Logged in as <?js= firstName ?> <?js= lastName ?> </script></body></html>
26. Sign in with LinkedIn <!DOCTYPE><html><head> <title>LinkedIn JavaScript API</title> <script type="text/javascript" src="http://platform.linkedin.com/in.js">api_key: 7TUS2_LeCD_vLuUE0L9ew35dh-tYtWkZDk4lQm6LYbcdVXgRELNWUMxl authorize: false </script></head><body> <script type="IN/Login"> Logged in as <?js= firstName ?> <?js= lastName ?> </script></body></html>
27. Sign in with LinkedIn api_key: The API Key received during signup on developer.linkedin.com authorize: Either "true" or "false". If "false", the user will not be automatically logged in for API calls.
28. Sign in with LinkedIn <!DOCTYPE><html><head> <title>LinkedIn JavaScript API</title> <script type="text/javascript" src="http://platform.linkedin.com/in.js">api_key: 7TUS2_LeCD_vLuUE0L9ew35dh-tYtWkZDk4lQm6LYbcdVXgRELNWUMxl authorize: false </script></head><body><script type="IN/Login"> Logged in as <?js= firstName ?> <?js= lastName ?> </script></body></html>
30. Retrieve a Profile <script type="IN/Login" data-onAuth="getProfile"> Logged in as <?js= firstName ?> <?js= lastName ?> </script>
31. Retrieve a Profile function getProfile() { IN.API.Profile("url=http://www.linkedin.com/in/adamnash") .fields("firstName", "lastName", "industry", "distance", "summary") .result(function(res) { var user = res.values[0], tmpl = ["<p>{firstName} {lastName} works in ", "the {industry} industry. You are {distance} degree(s) ", "away in the network. What follows is their summary.", "</p><p>{summary}</p>"].join(""); for (var name in user) { tmpl = tmpl.replace(newRegExp("{"+name+"}", "g"), user[name]); } document.getElementById("profile").innerHTML = tmpl; }); }
32. Retrieve a Profile function getProfile() { IN.API.Profile("url=http://www.linkedin.com/in/adamnash") .fields("firstName", "lastName", "industry", "distance", "summary") .result(function(res) { var user = res.values[0], tmpl = ["<p>{firstName} {lastName} works in ", "the {industry} industry. You are {distance} degree(s) ", "away in the network. What follows is their summary.", "</p><p>{summary}</p>"].join(""); for (var name in user) { tmpl = tmpl.replace(newRegExp("{"+name+"}", "g"), user[name]); } document.getElementById("profile").innerHTML = tmpl; }); }
36. IN.API.Profile(1).fields(2).result(3) The member IDs to get The fields to return A callback function for the result Additional Chained Methods .error() is identical to result() for errors .params() passes key-value pairs to the API
37. .result(myFunction(r) {...}, [scope]) The variable "r" is a JavaScript Object Contains "values" for collections of items Similar to the XML REST API
Americans spend 8.8 Hours a Dayat WorkIn 1987, 61% of them were satisfied with their jobsThen we had the Internet revolution. Social networks. Smart phones….In 2009, that number dropped to 45%
* Fantasticopportunity to provide great economic value and personal happiness.* Looking for passionate developers to use our platform to share in this mission.
200 CountriesAlmost 50% outside US80th Million member from Dijon, FranceWe will be truly successful when we solve two incredibly hard problems for you and everyone of our 85 million members
Fundamentally do two things:First: Help people tell their professional story
Other sites let you tell your personal storyFacebook: Social Utility: Friends, Family, Status and Photos
But LinkedIn lets you tell your professional story.Resume: Not a very compelling story. Low fidelity.Like the telegraph. Dots and dashes.
LinkedIn Profile. Story of today. Like the telephone. Audio.Our goal:How can we help make it easier for you to develop your story?Allow you to stand out, be found, and differentiate yourself from the crowdSo that people know they want you, not just someone with your skills.Developers can assistAll these fields available via APIFind a way to get more information, and better information.Profile MakeoverWhat and how: More compelling picture of not just what you’ve done, but how you did it..
Story of tomorrow: Video.Share all your creations Pictures Videos Presentations SitesCode
Profile data relatively static. Talks about yesterday. What you’ve done.Feed is highly dynamic. Talks about today. What’s going on now.Provides you’re keeping up with the current state of the artFor example, I’m looking to hire Developer Advocates for the teamIf I see someone linking to OAutharticle, definitely gets my interestEven better, providing a perceptiveDevelopers:Help people cultivate their feeds & share articlesTrack your network. Profile updates, status and shares, jobsBe in the conversation
Marko Kaiser from SeesmicAll social services in one placeTalk about his experiences using the LinkedIn APIs
All this leads to a trusted professional identity. Profile of record.On *and* off LinkedIn.For example, Presdo. A networking tool used at LeWeb used LI APIs to import your information.If you weren’t on LI, you couldn’t use it, and didn’t have any meetings.Or E-mail clients, or blogs and other publishers, many more examples.
The first goal is helping you tell your storyThe second is enabling you to achieve your career aspirationsBecause Story is yesterday and today. (Where I came from and arrived at.)Career: Where do you want to go tomorrow?
Before you can get there, do you even know what you want to do?How do you find out options?How could you get there?Who can you talk with about accomplishing that task?Career Explorer mines LinkedIn data to help make this happen.
LinkedIn is not a database of professionalsBut a graph with connections.If you’re not connecting, you’re denying yourself power and opportunities to grow and learn
If a professional colleague asked you for advice, you’d be happy to provide it.And they may be happy to ask…If only they’d known you were the best person to talk to.Developers can mine relationships between people to facilitate those suggestions.Help people better use their connectionsFor example: Search for something on another site, suggest experts from your LinkedIn network when appropriate
Jobs:Find them, research the role & company, apply, get the interview“I didn’t know ___ worked there!”Both push and pullCan a freelancer/consultant get interesting clients to find him?
Land your dream job, find the best candidates, finance your company, shifting from cold calling to warm prospecting, have the info and knowledge to be successful at what you doGoshido raised 162k Euro in 8 days using LI network.
Launched at LeWeb last yearOpen program. Anyone can join.Read and Write REST style APIsProfiles, Connections, Feed, People-Search
If you’re looking for inspiration, winners of hackday are on linkedinlabs.Of note, our most recent hackday winner created LinkedIn Instant. A google-instant like searching tool using our APIs.The total time for development was 5 hours, including all the custom markup and CSS added
The platform launched in October. Labeled as Early Access.Feedback is really important to us at this stage, it helps us understand what developers want to do with JavaScript
Here’s the basic markup for a “sign in with linkedin” buttonScript tag of type text/javascript for our source, with key/values inside
Inside the script tag, key/value pairs are comma separated, and each item is on a newline
The two main parameters are api_key and authorizeapi_key is the key we got from developer.linkedin.comauthorize: if true, we’ll automatically log the user in if they’ve given you access.if false, we’ll always display the “sign in with linkedin” button and ask them to approve your app again
Script tag of IN/Login which is our login widget. The insides are displayable content (in this case, what will replace the button when the user logs in)
all of this creates the button you see here. When the user clicks it, they’re asked to give your site permissionOnce you have permission, you can begin making API calls
We’re going to start by modifying the IN/Login tag to add one of those onAuth parameters. We’ll call the function getProfile
getProfile looks like this.
Most interestingly, we’re making a call to IN.API.Profile() right away. This is the JavaScript API. Items are chained together to define the request, which is turned into a REST request on the backend
The syntax looks like this. IN.API.Profile(), followed by fields() and result()Starting with the parameter for the Profile() method, you can pass in one or more of the following:public profile URLs can be passed in as url= your URL here
The fields you want for the profile are denoted using fields()Names are camelCase, and a full list of profiles can be found here
The call happens when you call the result() methodIt can be invoked one of two ways. The first way is with just a callback function, which will receive the resultThe second way includes a scope for the function in more complex Object Oriented environments
Lastly, .error() is a method you can add on to capture any errorsAnd params() lets you pass key-value pairs along
Inside of result, you get a json payload of the APIThe format is very similar to the standard XML. Collections are under a “values” key, attributes are prefixed by an underscore
Thanks for listening.Fantastic opportunity to provide great economic value and personal happiness. Looking for passionate developers to use our platform to share in this mission. And even for developers to join our team.Open for questions.