{ "info": { "author": "Jonathan Dekhtiar", "author_email": "contact@jonathandekhtiar.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Python3-LinkedIn\n================\n\n|LinkedIn| |Build Status|\n\nPython interface to the LinkedIn API\n\nThis library provides a pure Python interface to the LinkedIn\n**Profile**, **Group**, **Company**, **Jobs**, **Search**, **Share**,\n**Network** and **Invitation** REST APIs.\n\n`LinkedIn `__ provides a service that\nlets people bring their LinkedIn profiles and networks with them to your\nsite or application via their OAuth based API. This library provides a\nlightweight interface over a complicated LinkedIn OAuth based API to\nmake it for python programmers easy to use.\n\nAcknowledgement\n---------------\n\n- This library was created by `Ozgur\n Vatansever `__.\n- In 2016, the library was converted to Python 3 by `Marshall\n Lusher `__\n\nMaintainer : `Jonathan Dekhtiar `__\n\nContributors: \\* `Ozgur Vatansever `__ \\*\n`Marshall Lusher `__ \\* `Jonathan\nDekhtiar `__ \\* `Abraham\nWilliams `__ \\* `Matthew A.\nRussell `__ \\* `Samuel\nMarks `__ \\* `Emlyn\nClay `__ \\* `Ivan\nKravets `__ \\* `Devin\nBarry `__ \\* `Josh\nOwen `__ \\* `Chengxin\nCai `__ \\* `Yuri\nPrezument `__ \\* `Jay\nZeng `__ \\* `Julien\nMuniak `__ \\* `John\nFraney `__ \\* `Adrian\nSgn `__ \\* `Luca Adalberto\nVandro `__ \\*\n`Jack `__ \\* `Scotty\nDelta `__ \\* `Michael\nBlakeley `__ \\* `Song\nZhen-Gang `__ \\* `Ismail\nCoskuner `__ \\*\n`Marshyang `__ \\* `Iurii\nKudriavtsev `__ \\* `Kartik\nAyyar `__ \\* `Kit\nSunde `__ \\* `Patrick\nM\u00fcssig `__\n\nInstallation\n------------\n\nAvailable with the Python Package Index:\nhttps://pypi.python.org/pypi/python3-linkedin\n\n.. code:: shell\n\n pip install python3-linkedin\n\nIf prefered, the library can be compiled with following commands:\n\n.. code:: shell\n\n ## First clone the repository\n git clone https://github.com/DEKHTIARJonathan/python3-linkedin.git\n\n ## Then install the library\n python setup.py install\n\nAuthentication\n--------------\n\nThe LinkedIn REST API now supports the **OAuth 2.0** protocol for\nauthentication. This package provides a full OAuth 2.0 implementation\nfor connecting to LinkedIn as well as an option for using an OAuth 1.0a\nflow that can be helpful for development purposes or just accessing your\nown data.\n\nHTTP API example\n~~~~~~~~~~~~~~~~\n\nPlease declare and setup a new application on the `LinkedIn Developer\nConsole `__\n\nSet ``LINKEDIN_API_KEY`` and ``LINKEDIN_API_SECRET``, configure your app\nto redirect to ``http://localhost:8080/code``, then execute:\n\n0. ``http_api.py``\n1. Visit ``http://localhost:8080`` in your browser, curl or similar\n2. A tab in your browser will open up, give LinkedIn permission there\n3. You'll then be presented with a list of available routes, hit any,\n e.g.:\n4. ``curl -XGET http://localhost:8080/get_profile``\n\nDeveloper Authentication\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo connect to LinkedIn as a developer or just to access your own data,\nyou don't even have to implement an OAuth 2.0 flow that involves\nredirects. You can simply use the 4 credentials that are provided to you\nin your LinkedIn appliation as part of an OAuth 1.0a flow and\nimmediately access your data. Here's how:\n\n.. code:: python\n\n from linkedin import linkedin\n\n # Define CONSUMER_KEY, CONSUMER_SECRET, \n # USER_TOKEN, and USER_SECRET from the credentials\n # provided in your LinkedIn application\n\n # Instantiate the developer authentication class\n\n authentication = linkedin.LinkedInDeveloperAuthentication(\n CONSUMER_KEY,\n CONSUMER_SECRET,\n USER_TOKEN,\n USER_SECRET,\n RETURN_URL,\n linkedin.PERMISSIONS.enums.values()\n )\n\n # Optionally one can send custom \"state\" value that will be returned from OAuth server\n # It can be used to track your user state or something else (it's up to you)\n # Be aware that this value is sent to OAuth server AS IS - make sure to encode or hash it\n\n # authorization.state = 'your_encoded_message'\n\n # Pass it in to the app...\n\n application = linkedin.LinkedInApplication(authentication)\n\n # Use the app....\n\n application.get_profile()\n\nProduction Authentication\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn order to use the LinkedIn OAuth 2.0, you need to have these two keys\nfrom the from the `LinkedIn Developer\nConsole `__:\n\n.. code:: python\n\n APPLICATON_KEY = '##############'\n APPLICATON_SECRET = '################'\n\nYou can get more detail about the Oauth2 authentication process from\n`here `__.\n\nLinkedIn redirects the user back to your website's URL after granting\naccess (giving proper permissions) to your application. We call that url\n**RETURN URL**. Assuming your return url is **https://localhost:8000**,\nyou can write something like this:\n\n.. code:: python\n\n from linkedin import linkedin\n\n APPLICATON_KEY = '##############'\n APPLICATON_SECRET = '################'\n\n RETURN_URL = 'http://localhost:8000'\n\n authentication = linkedin.LinkedInAuthentication(\n APPLICATON_KEY,\n APPLICATON_SECRET,\n RETURN_URL,\n linkedin.PERMISSIONS.enums.values()\n )\n\n # Optionally one can send custom \"state\" value that will be returned from OAuth server\n # It can be used to track your user state or something else (it's up to you)\n # Be aware that this value is sent to OAuth server AS IS - make sure to encode or hash it\n #authorization.state = 'your_encoded_message'\n\n print (authentication.authorization_url) # open this url on your browser\n\nWhen you grant access to the application, you will be redirected to the\nreturn url with the following query strings appended to your\n**RETURN\\_URL**:\n\n.. code:: python\n\n \"http://localhost:8000/?code=#############################################&state=########################\"\n\nThis url contains the value of the **authorization\\_code**. After\nsetting it by hand, we can call the **.get\\_access\\_token()** to get the\nactual token.\n\n.. code:: python\n\n from linkedin import linkedin\n\n APPLICATON_KEY = '##############'\n APPLICATON_SECRET = '################'\n\n RETURN_URL = 'http://localhost:8000'\n\n authentication = linkedin.LinkedInAuthentication(\n APPLICATON_KEY,\n APPLICATON_SECRET,\n RETURN_URL,\n linkedin.PERMISSIONS.enums.values()\n )\n\n authentication.authorization_code = '#############################################'\n result = authentication.get_access_token()\n\n print (\"Access Token:\", result.access_token)\n print (\"Expires in (seconds):\", result.expires_in)\n\nAfter you get the access token, you are now permitted to make API calls\non behalf of the user who granted access to you app. In addition to\nthat, in order to prevent from going through the OAuth flow for every\nconsecutive request, one can directly assign the access token obtained\nbefore to the application instance.\n\n.. code:: python\n\n from linkedin import linkedin\n\n application = linkedin.LinkedInApplication(token='###################################')\n\nQuick Usage From Python Interpreter\n-----------------------------------\n\nFor testing the library using an interpreter, you can benefit from the\ntest server.\n\n.. code:: python\n\n from linkedin import server\n application = server.quick_api(KEY, SECRET)\n\nThis will print the authorization url to the screen. Go into that URL\nusing a browser to grant access to the application. After you do so, the\nmethod will return with an API object you can now use.\n\nProfile API\n-----------\n\nThe Profile API returns a member's LinkedIn profile. You can use this\ncall to return one of two versions of a user's profile which are\n**public profile** and **standard profile**. For more information, check\nout the\n`documentation `__.\n\n.. code:: python\n\n application.get_profile()\n {u'firstName': u'ozgur',\n u'headline': u'This is my headline',\n u'lastName': u'vatansever',\n u'siteStandardProfileRequest': {u'url': u'https://www.linkedin.com/profile/view?id=46113651&authType=name&authToken=Egbj&trk=api*a101945*s101945*'}}\n\nThere are many **field selectors** that enable the client fetch more\ninformation from the API. All of them used by each API are listed\n`here `__.\n\n.. code:: python\n\n application.get_profile(selectors=['id', 'first-name', 'last-name', 'location', 'distance', 'num-connections', 'skills', 'educations'])\n {u'distance': 0,\n u'educations': {u'_total': 1,\n u'values': [{u'activities': u'This is my activity and society field',\n u'degree': u'graduate',\n u'endDate': {u'year': 2009},\n u'fieldOfStudy': u'computer science',\n u'id': 42611838,\n u'notes': u'This is my additional notes field',\n u'schoolName': u'\\u0130stanbul Bilgi \\xdcniversitesi',\n u'startDate': {u'year': 2004}}]},\n u'firstName': u'ozgur',\n u'id': u'COjFALsKDP',\n u'lastName': u'vatansever',\n u'location': {u'country': {u'code': u'tr'}, u'name': u'Istanbul, Turkey'},\n u'numConnections': 13}\n\nConnections API\n---------------\n\nThe Connections API returns a list of **1st degree** connections for a\nuser who has granted access to their account. For more information, you\ncheck out its\n`documentation `__.\n\nTo fetch your connections, you simply call **.get\\_connections()**\nmethod with proper GET querystring:\n\n.. code:: python\n\n application.get_connections()\n {u'_total': 13,\n u'values': [{u'apiStandardProfileRequest': {u'headers': {u'_total': 1,\n u'values': [{u'name': u'x-li-auth-token', u'value': u'name:16V1033'}]},\n u'url': u'https://api.linkedin.com/v1/people/lddvGtD5xk'},\n u'firstName': u'John',\n u'headline': u'Ruby',\n u'id': u'2323SDFSsfd34',\n u'industry': u'Computer Software',\n u'lastName': u'DOE',\n u'location': {u'country': {u'code': u'tr'}, u'name': u'Istanbul, Turkey'},\n u'siteStandardProfileRequest': {u'url': u'https://www.linkedin.com/profile/view?id=049430532&authType=name&authToken=16V8&trk=api*a101945*s101945*'}},\n ....\n\n application.get_connections(selectors=['headline', 'first-name', 'last-name'], params={'start':10, 'count':5})\n\nSearch API\n----------\n\nThere are 3 types of Search APIs. One is the **People Search** API,\nsecond one is the **Company Search** API and the last one is **Jobs\nSearch** API.\n\nThe People Search API returns information about people. It lets you\nimplement most of what shows up when you do a search for \"People\" in the\ntop right box on LinkedIn.com. You can get more information from\n`here `__.\n\n.. code:: python\n\n application.search_profile(selectors=[{'people': ['first-name', 'last-name']}], params={'keywords': 'apple microsoft'})\n # Search URL is https://api.linkedin.com/v1/people-search:(people:(first-name,last-name))?keywords=apple%20microsoft\n\n {u'people': {u'_count': 10,\n u'_start': 0,\n u'_total': 2,\n u'values': [\n {u'firstName': u'John', u'lastName': 'Doe'},\n {u'firstName': u'Jane', u'lastName': u'Doe'}\n ]}}\n\nThe Company Search API enables search across company pages. You can get\nmore information from\n`here `__.\n\n.. code:: python\n\n application.search_company(selectors=[{'companies': ['name', 'universal-name', 'website-url']}], params={'keywords': 'apple microsoft'})\n # Search URL is https://api.linkedin.com/v1/company-search:(companies:(name,universal-name,website-url))?keywords=apple%20microsoft\n\n {u'companies': {u'_count': 10,\n u'_start': 0,\n u'_total': 1064,\n u'values': [{u'name': u'Netflix',\n u'universalName': u'netflix',\n u'websiteUrl': u'httsp://netflix.com'},\n {u'name': u'Alliance Data',\n u'universalName': u'alliance-data',\n u'websiteUrl': u'www.alliancedata.com'},\n {u'name': u'GHA Technologies',\n u'universalName': u'gha-technologies',\n u'websiteUrl': u'www.gha-associates.com'},\n {u'name': u'Intelligent Decisions',\n u'universalName': u'intelligent-decisions',\n u'websiteUrl': u'https://www.intelligent.net'},\n {u'name': u'Mindfire Solutions',\n u'universalName': u'mindfire-solutions',\n u'websiteUrl': u'www.mindfiresolutions.com'},\n {u'name': u'Babel Media',\n u'universalName': u'babel-media',\n u'websiteUrl': u'https://www.babelmedia.com/'},\n {u'name': u'Milestone Technologies',\n u'universalName': u'milestone-technologies',\n u'websiteUrl': u'www.milestonepowered.com'},\n {u'name': u'Denali Advanced Integration',\n u'universalName': u'denali-advanced-integration',\n u'websiteUrl': u'www.denaliai.com'},\n {u'name': u'MicroAge',\n u'universalName': u'microage',\n u'websiteUrl': u'www.microage.com'},\n {u'name': u'TRUSTe',\n u'universalName': u'truste',\n u'websiteUrl': u'https://www.truste.com/'}]}}\n\nThe Job Search API enables search across LinkedIn's job postings. You\ncan get more information from\n`here `__.\n\n.. code:: python\n\n application.search_job(selectors=[{'jobs': ['id', 'customer-job-code', 'posting-date']}], params={'title': 'python', 'count': 2})\n {u'jobs': {u'_count': 2,\n u'_start': 0,\n u'_total': 206747,\n u'values': [{u'customerJobCode': u'0006YT23WQ',\n u'id': 5174636,\n u'postingDate': {u'day': 21, u'month': 3, u'year': 2013}},\n {u'customerJobCode': u'00023CCVC2',\n u'id': 5174634,\n u'postingDate': {u'day': 21, u'month': 3, u'year': 2013}}]}}\n\nGroup API\n---------\n\nThe Groups API provides rich access to read and interact with LinkedIn\u2019s\ngroups functionality. You can get more information from\n`here `__. By the\nhelp of the interface, you can fetch group details, get your group\nmemberships as well as your posts for a specific group which you are a\nmember of.\n\n.. code:: python\n\n application.get_group(41001)\n {u'id': u'41001', u'name': u'Object Oriented Programming'}\n\n application.get_memberships(params={'count': 20})\n {u'_total': 1,\n u'values': [{u'_key': u'25827',\n u'group': {u'id': u'25827', u'name': u'Python Community'},\n u'membershipState': {u'code': u'member'}}]}\n\n application.get_posts(41001)\n\n application.get_post_comments(\n %POST_ID%,\n selectors=[\n {\"creator\": [\"first-name\", \"last-name\"]},\n \"creation-timestamp\",\n \"text\"\n ],\n params={\"start\": 0, \"count\": 20}\n )\n\nYou can also submit a new post into a specific group.\n\n.. code:: python\n\n title = 'Scala for the Impatient'\n summary = 'A new book has been published'\n submitted_url = 'https://horstmann.com/scala/'\n submitted_image_url = 'https://horstmann.com/scala/images/cover.png'\n description = 'It is a great book for the keen beginners. Check it out!'\n\n application.submit_group_post(41001, title, summary, submitted_url, submitted_image_url, description)\n\nCompany API\n-----------\n\nThe Company API: \\* Retrieves and displays one or more company profiles\nbased on the company ID or universal name. \\* Returns basic company\nprofile data, such as name, website, and industry. \\* Returns handles to\nadditional company content, such as RSS stream and Twitter feed.\n\nYou can query a company with either its **ID** or **Universal Name**.\nFor more information, you can check out the documentation\n`here `__.\n\n.. code:: python\n\n application.get_companies(company_ids=[1035], universal_names=['apple'], selectors=['name'], params={'is-company-admin': 'true'})\n # 1035 is Microsoft\n # The URL is as follows: https://api.linkedin.com/v1/companies::(1035,universal-name=apple)?is-company-admin=true\n\n {u'_total': 2,\n u'values': [{u'_key': u'1035', u'name': u'Microsoft'},\n {u'_key': u'universal-name=apple', u'name': u'Apple'}]}\n\n # Get the latest updates about Microsoft\n application.get_company_updates(1035, params={'count': 2})\n {u'_count': 2,\n u'_start': 0,\n u'_total': 58,\n u'values': [{u'isCommentable': True,\n u'isLikable': True,\n u'isLiked': False,\n u'numLikes': 0,\n u'timestamp': 1363855486620,\n u'updateComments': {u'_total': 0},\n u'updateContent': {u'company': {u'id': 1035, u'name': u'Microsoft'},\n u'companyJobUpdate': {u'action': {u'code': u'created'},\n u'job': {u'company': {u'id': 1035, u'name': u'Microsoft'},\n u'description': u'Job Category: SalesLocation: Sacramento, CA, USJob ID: 812346-106756Division: Retail StoresStore...',\n u'id': 5173319,\n u'locationDescription': u'Sacramento, CA, US',\n u'position': {u'title': u'Store Manager, Specialty Store'},\n u'siteJobRequest': {u'url': u'https://www.linkedin.com/jobs?viewJob=&jobId=5173319'}}}},\n u'updateKey': u'UNIU-c1035-5720424522989961216-FOLLOW_CMPY',\n u'updateType': u'CMPY'},\n {u'isCommentable': True,\n u'isLikable': True,\n u'isLiked': False,\n u'numLikes': 0,\n u'timestamp': 1363855486617,\n u'updateComments': {u'_total': 0},\n u'updateContent': {u'company': {u'id': 1035, u'name': u'Microsoft'},\n u'companyJobUpdate': {u'action': {u'code': u'created'},\n u'job': {u'company': {u'id': 1035, u'name': u'Microsoft'},\n u'description': u'Job Category: Software Engineering: TestLocation: Redmond, WA, USJob ID: 794953-81760Division:...',\n u'id': 5173313,\n u'locationDescription': u'Redmond, WA, US',\n u'position': {u'title': u'Software Development Engineer in Test, Senior-IEB-MSCIS (794953)'},\n u'siteJobRequest': {u'url': u'https://www.linkedin.com/jobs?viewJob=&jobId=5173313'}}}},\n u'updateKey': u'UNIU-c1035-5720424522977378304-FOLLOW_CMPY',\n u'updateType': u'CMPY'}]}\n\nYou can follow or unfollow a specific company as well.\n\n.. code:: python\n\n application.follow_company(1035)\n True\n\n application.unfollow_company(1035)\n True\n\nJob API\n-------\n\nThe Jobs APIs provide access to view jobs and job data. You can get more\ninformation from its\n`documentation `__.\n\n.. code:: python\n\n application.get_job(job_id=5174636)\n {u'active': True,\n u'company': {u'id': 2329, u'name': u'Schneider Electric'},\n u'descriptionSnippet': u\"The Industrial Accounts Sales Manager is a quota carrying senior sales position principally responsible for generating new sales and growing company's share of wallet within the industrial business, contracting business and consulting engineering business. The primary objective is to build and establish strong and lasting relationships with technical teams and at executive level within specific in\",\n u'id': 5174636,\n u'position': {u'title': u'Industrial Accounts Sales Manager'},\n u'postingTimestamp': 1363860033000}\n\nYou can also fetch you job bookmarks.\n\n.. code:: python\n\n application.get_job_bookmarks()\n {u'_total': 0}\n\nShare API\n---------\n\nNetwork updates serve as one of the core experiences on LinkedIn, giving\nusers the ability to share rich content to their professional network.\nYou can get more information from\n`here `__.\n\n::\n\n application.submit_share('Posting from the API using JSON', 'A title for your share', None, 'https://www.linkedin.com', 'https://d.pr/3OWS')\n {'updateKey': u'UNIU-8219502-5705061301949063168-SHARE'\n 'updateURL': 'https://www.linkedin.com/updates?discuss=&scope=8219502&stype=M&topic=5705061301949063168&type=U&a=aovi'}\n\nNetwork API\n-----------\n\nThe Get Network Updates API returns the users network updates, which is\nthe LinkedIn term for the user's feed. This call returns most of what\nshows up in the middle column of the LinkedIn.com home page, either for\nthe member or the member's connections. You can get more information\nfrom\n`here `__.\n\nThere are many network update types. You can look at them by importing\n**NETWORK\\_UPDATES** enumeration.\n\n.. code:: python\n\n from linkedin.linkedin import NETWORK_UPDATES\n print NETWORK_UPDATES.enums\n {'APPLICATION': 'APPS',\n 'CHANGED_PROFILE': 'PRFU',\n 'COMPANY': 'CMPY',\n 'CONNECTION': 'CONN',\n 'EXTENDED_PROFILE': 'PRFX',\n 'GROUP': 'JGRP',\n 'JOB': 'JOBS',\n 'PICTURE': 'PICT',\n 'SHARED': 'SHAR',\n 'VIRAL': 'VIRL'}\n\n update_types = (NETWORK_UPDATES.CONNECTION, NETWORK_UPDATES.PICTURE)\n application.get_network_updates(update_types)\n\n {u'_total': 1,\n u'values': [{u'isCommentable': True,\n u'isLikable': True,\n u'isLiked': False,\n u'numLikes': 0,\n u'timestamp': 1363470126509,\n u'updateComments': {u'_total': 0},\n u'updateContent': {u'person': {u'apiStandardProfileRequest': {u'headers': {u'_total': 1,\n u'values': [{u'name': u'x-li-auth-token', u'value': u'name:Egbj'}]},\n u'url': u'https://api.linkedin.com/v1/people/COjFALsKDP'},\n u'firstName': u'ozgur',\n u'headline': u'This is my headline',\n u'id': u'COjFALsKDP',\n u'lastName': u'vatansever',\n u'siteStandardProfileRequest': {u'url': u'https://www.linkedin.com/profile/view?id=46113651&authType=name&authToken=Egbj&trk=api*a101945*s101945*'}}},\n u'updateKey': u'UNIU-46113651-5718808205493026816-SHARE',\n u'updateType': u'SHAR'}]}\n\nInvitation API\n--------------\n\nThe Invitation API allows your users to invite people they find in your\napplication to their LinkedIn network. You can get more information from\n`here `__.\n\n.. code:: python\n\n from linkedin.models import LinkedInRecipient, LinkedInInvitation\n recipient = LinkedInRecipient(None, 'john.doe@python.org', 'John', 'Doe')\n print recipient.json\n {'person': {'_path': '/people/email=john.doe@python.org',\n 'first-name': 'John',\n 'last-name': 'Doe'}}\n\n invitation = LinkedInInvitation('Hello John', \"What's up? Can I add you as a friend?\", (recipient,), 'friend')\n print invitation.json\n {'body': \"What's up? Can I add you as a friend?\",\n 'item-content': {'invitation-request': {'connect-type': 'friend'}},\n 'recipients': {'values': [{'person': {'_path': '/people/email=john.doe@python.org',\n 'first-name': 'John',\n 'last-name': 'Doe'}}]},\n 'subject': 'Hello John'}\n\n application.send_invitation(invitation)\n True\n\nThrottle Limits\n---------------\n\nLinkedIn API keys are throttled by default. You should take a look at\nthe `Throttle Limits\nDocumentation `__\nto get more information about it.\n\n.. |LinkedIn| image:: https://img4.hostingpics.net/pics/514667Capture.png\n :target: http://developer.linkedin.com\n.. |Build Status| image:: https://travis-ci.org/DEKHTIARJonathan/python3-linkedin.svg?branch=master\n :target: https://travis-ci.org/DEKHTIARJonathan/python3-linkedin\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/DEKHTIARJonathan/python3-linkedin", "keywords": "linkedin python python3", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "python3-linkedin", "package_url": "https://pypi.org/project/python3-linkedin/", "platform": "", "project_url": "https://pypi.org/project/python3-linkedin/", "project_urls": { "Homepage": "https://github.com/DEKHTIARJonathan/python3-linkedin" }, "release_url": "https://pypi.org/project/python3-linkedin/1.0.2/", "requires_dist": [ "requests (>=2.8.1)", "requests-oauthlib (>=0.5.0)" ], "requires_python": "", "summary": "Python Interface to the LinkedIn API", "version": "1.0.2" }, "last_serial": 3191524, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "81a796863b4346856d5f5486e150a842", "sha256": "011667220928349a33d5b19003b116104b06cf06a8904d421dbc077e29c497e4" }, "downloads": -1, "filename": "python3_linkedin-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81a796863b4346856d5f5486e150a842", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24987, "upload_time": "2017-04-09T01:04:13", "url": "https://files.pythonhosted.org/packages/b9/72/8eabb6b8c57286d22ba0c75fa3e6088a19a8bdc276b7401944b53845a702/python3_linkedin-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d7ec8965fde6ae72cd5bfcb078fc698", "sha256": "e772a3d5d06b4c1df3eed5480a6569101dfb7bda1ca2e8c1c09c4569ca336849" }, "downloads": -1, "filename": "python3_linkedin-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9d7ec8965fde6ae72cd5bfcb078fc698", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24983, "upload_time": "2017-04-09T01:04:15", "url": "https://files.pythonhosted.org/packages/ef/5a/f2d298b5358ef223fbe8c76907dcc75787d4dfc77ea6fe29823256c18756/python3_linkedin-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a9317cfafcd18ab755ffb55be93f970", "sha256": "8d3b4e4a1c5dc212f721071311f319b82eed42e0e35e503487a69a56bde37472" }, "downloads": -1, "filename": "python3-linkedin-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8a9317cfafcd18ab755ffb55be93f970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23804, "upload_time": "2017-04-09T01:04:16", "url": "https://files.pythonhosted.org/packages/5f/1c/c538618230326d366f57881656e8dec3b849dc2acbcbd3b078457b6ffc99/python3-linkedin-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "04d62b5f6d9e96bbbe238e74bcf6a51d", "sha256": "5b428259d93c82d4905e790e9d8faa7747bd1e7341d3ec730ebba96be6f1e86f" }, "downloads": -1, "filename": "python3_linkedin-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "04d62b5f6d9e96bbbe238e74bcf6a51d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25034, "upload_time": "2017-09-21T12:37:53", "url": "https://files.pythonhosted.org/packages/cc/82/eb274d7366e126484d62f07c5ba4e23c99f4d388464aa5f3750b5d417df6/python3_linkedin-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a4f586a045c3a60d1e89b02f1c3bc5e", "sha256": "928dd31a4605e09f7f4df84c7cdadf02192d13d6f999097b44b51672a2b9d1cb" }, "downloads": -1, "filename": "python3_linkedin-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8a4f586a045c3a60d1e89b02f1c3bc5e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25030, "upload_time": "2017-09-21T12:37:55", "url": "https://files.pythonhosted.org/packages/9a/d1/f0ea84783114b1a956755f0dc938de0ad096d5978e01582ac944755fb48a/python3_linkedin-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "496b65d701c6b745b458935d56a50927", "sha256": "57fd2d60a268e6b4c10122b2bfa3c6a4d71aa270e90a5a60c49ad053b18e71a0" }, "downloads": -1, "filename": "python3-linkedin-1.0.2.tar.gz", "has_sig": false, "md5_digest": "496b65d701c6b745b458935d56a50927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23826, "upload_time": "2017-09-21T12:37:56", "url": "https://files.pythonhosted.org/packages/d5/ac/76b8ca786973677652721d013cd85cdc393949ab709b83dfa5fded64e5a3/python3-linkedin-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "04d62b5f6d9e96bbbe238e74bcf6a51d", "sha256": "5b428259d93c82d4905e790e9d8faa7747bd1e7341d3ec730ebba96be6f1e86f" }, "downloads": -1, "filename": "python3_linkedin-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "04d62b5f6d9e96bbbe238e74bcf6a51d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25034, "upload_time": "2017-09-21T12:37:53", "url": "https://files.pythonhosted.org/packages/cc/82/eb274d7366e126484d62f07c5ba4e23c99f4d388464aa5f3750b5d417df6/python3_linkedin-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a4f586a045c3a60d1e89b02f1c3bc5e", "sha256": "928dd31a4605e09f7f4df84c7cdadf02192d13d6f999097b44b51672a2b9d1cb" }, "downloads": -1, "filename": "python3_linkedin-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8a4f586a045c3a60d1e89b02f1c3bc5e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25030, "upload_time": "2017-09-21T12:37:55", "url": "https://files.pythonhosted.org/packages/9a/d1/f0ea84783114b1a956755f0dc938de0ad096d5978e01582ac944755fb48a/python3_linkedin-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "496b65d701c6b745b458935d56a50927", "sha256": "57fd2d60a268e6b4c10122b2bfa3c6a4d71aa270e90a5a60c49ad053b18e71a0" }, "downloads": -1, "filename": "python3-linkedin-1.0.2.tar.gz", "has_sig": false, "md5_digest": "496b65d701c6b745b458935d56a50927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23826, "upload_time": "2017-09-21T12:37:56", "url": "https://files.pythonhosted.org/packages/d5/ac/76b8ca786973677652721d013cd85cdc393949ab709b83dfa5fded64e5a3/python3-linkedin-1.0.2.tar.gz" } ] }