Как обновить LinkedIn через API: пошаговая инструкция с примерами кода на Python

Пошаговая инструкция по использованию LinkedIn API v2 для автоматического обновления профиля и публикации контента, включая процессы аутентификации OAuth 2.0 и примеры кода на Python для чтения данных профиля и создания постов.
В современном цифровом мире поддержание актуального профиля в LinkedIn — это не просто вопрос личного бренда, а часто профессиональная необходимость. Ручное обновление, особенно для частых изменений или интеграции с другими системами, становится неэффективным. На помощь приходит LinkedIn API, который позволяет автоматизировать этот процесс. Данная статья представляет собой подробное руководство по использованию LinkedIn API v2 для программного обновления профиля, снабженное практическими примерами кода на Python.

Первым и самым важным шагом является получение доступа к API. Для этого вам необходимо зарегистрировать приложение на портале разработчиков LinkedIn. Перейдите на сайт developers.linkedin.com, авторизуйтесь и создайте новое приложение. В процессе вам будет присвоен Client ID и Client Secret — это ваши учетные данные приложения. Важно правильно настроить разрешения (OAuth 2.0 scopes). Для обновления основной информации профиля вам понадобится scope `r_liteprofile` и `r_member_social`, а для записи данных — `w_member_social`. Для более глубокого редактирования может потребоваться `w_organization_social`. Все запросы к API должны быть аутентифицированы с помощью токена доступа.

Давайте рассмотрим процесс аутентификации на примере кода. Мы будем использовать библиотеку `requests` для Python. Первым делом необходимо получить authorization code, перенаправив пользователя по специальному URL.

import requests
import webbrowser

client_id = 'YOUR_CLIENT_ID'
redirect_uri = 'YOUR_REDIRECT_URI' # Например, http://localhost:8000/callback
scope = 'r_liteprofile w_member_social'
auth_url = f'https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope={scope}'

# Открываем браузер для авторизации пользователя
webbrowser.open(auth_url)
# Пользователь авторизуется, и код будет передан на ваш redirect_uri

После того как пользователь разрешит доступ, LinkedIn перенаправит его на указанный `redirect_uri` с параметром `code` в URL. Ваш сервер (или скрипт) должен перехватить этот код. Затем этот код обменивается на access token.

code = 'CODE_FROM_REDIRECT' # Этот код вы извлекаете из URL callback
token_url = 'https://www.linkedin.com/oauth/v2/accessToken'
data = {
 'grant_type': 'authorization_code',
 'code': code,
 'redirect_uri': redirect_uri,
 'client_id': client_id,
 'client_secret': 'YOUR_CLIENT_SECRET'
}
response = requests.post(token_url, data=data)
access_token = response.json().get('access_token')
print(f"Access Token: {access_token}")

Теперь, имея токен доступа, вы можете делать запросы к API. Давайте начнем с чтения текущего профиля, чтобы понять структуру данных. Запрос на получение базовой информации:

headers = {'Authorization': f'Bearer {access_token}'}
profile_url = 'https://api.linkedin.com/v2/me'
profile_response = requests.get(profile_url, headers=headers)
print(profile_response.json())

Это вернет идентификатор пользователя и базовые данные. Для обновления профиля, например, для публикации поста, используется другой endpoint. LinkedIn API для публикации контента от имени пользователя требует создания специального URN (Uniform Resource Name) и использования определенного формата JSON.

Допустим, мы хотим опубликовать простой текстовый пост. Сначала необходимо сформировать URN автора, который обычно имеет вид `urn:li:person:{id}`, где `id` — это идентификатор, полученный из запроса к `/me`. Затем создаем тело запроса.

author_urn = f"urn:li:person:{profile_response.json().get('id')}"
post_url = 'https://api.linkedin.com/v2/ugcPosts'

post_data = {
 "author": author_urn,
 "lifecycleState": "PUBLISHED",
 "specificContent": {
 "com.linkedin.ugc.ShareContent": {
 "shareCommentary": {
 "text": "Привет, LinkedIn! Это автоматический пост, созданный через API. #Automation #Python"
 },
 "shareMediaCategory": "NONE"
 }
 },
 "visibility": {
 "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
 }
}

headers['X-Restli-Protocol-Version'] = '2.0.0'
headers['Content-Type'] = 'application/json'

response = requests.post(post_url, headers=headers, json=post_data)
if response.status_code == 201:
 print("Пост успешно опубликован!")
 print(response.json())
else:
 print(f"Ошибка: {response.status_code}")
 print(response.text)

Этот код опубликует текстовый пост от имени авторизованного пользователя. Важно отметить, что LinkedIn API имеет строгие правила и лимиты на использование, поэтому обязательно ознакомьтесь с документацией перед массовыми операциями.

Но обновление LinkedIn — это не только посты. Через API можно также обновлять некоторые разделы профиля, например, "О себе" (About section) или опыт работы. Однако, важно понимать, что write-доступ к основным полям профиля через API ограничен и может требовать дополнительных разрешений или использования других, более специфичных endpoints. Для обновления информации в профиле часто используется API для организации контента или, в некоторых сценариях, партнерские решения.

Еще один практический пример — обновление статуса заголовка (Headline). Хотя прямого endpoint для этого в публичном API может не быть, можно использовать альтернативные методы, например, через интеграцию с разрешением `w_member_social` и публикацией определенного типа активности, но это менее прямолинейно. Основной фокус API — это управление контентом (посты, статьи, комментарии), а не детальное редактирование полей резюме.

Безопасность является ключевым аспектом. Никогда не храните `client_secret` и `access_token` в коде, который может попасть в публичные репозитории. Используйте переменные окружения или secure vaults. Токены доступа имеют ограниченный срок жизни, и вам нужно будет реализовать логику их обновления с помощью `refresh_token`, если он был запрошен при начальной аутентификации.

Интеграция LinkedIn API в ваши приложения открывает широкие возможности: от автоматизации публикаций контента в рамках маркетинговой стратегии до синхронизации профессиональных достижений с внутренними системами компании. Начните с малого — автоматизируйте публикацию еженедельных отчетов или анонсов событий, а затем, по мере знакомства с нюансами API, расширяйте функционал.

В заключение, автоматическое обновление LinkedIn через API — мощный инструмент для профессионалов и бизнеса. Представленные примеры кода на Python дают практическую основу для начала работы. Помните о соблюдении правил платформы, тестируйте запросы в песочнице и всегда получайте явное согласие пользователя перед управлением его данными.
208 3

Комментарии (12)

avatar
mhpjmc 01.04.2026
Отлично! Это сэкономит мне кучу времени. Уже реализовал скрипт для обновления позиции.
avatar
v46vndg9i49 02.04.2026
Использую похожий подход для синхронизации профиля на сайте компании с LinkedIn. Работает стабильно.
avatar
pafszbl6 02.04.2026
Не уверен, что это безопасно — давать доступ сторонним скриптам к своему профилю. Есть риски?
avatar
plje9ki2wp7f 03.04.2026
Автоматизация через API — это мощно. Планирую интегрировать обновления LinkedIn с нашей CRM.
avatar
7pucjqz 03.04.2026
Жаль, что API LinkedIn такой ограниченный. Нельзя обновлять некоторые разделы программно.
avatar
edkiq57 03.04.2026
Отличная инструкция! Как раз искал способ автоматизировать обновление своего профиля. Спасибо за примеры кода.
avatar
d0jfte5 03.04.2026
Статья полезная, но хотелось бы больше информации об обработке ошибок и ограничениях API.
avatar
mn4ux1gwe 03.04.2026
Хороший обзор, но не хватает раздела про получение необходимых ключей доступа (access tokens).
avatar
e4hnse4xvtpp 03.04.2026
У LinkedIn часто меняются правила API. Актуальна ли эта информация на текущий момент?
avatar
twru2h6vrn 04.04.2026
Примеры на Python понятные, даже для начинающих. Жду подобную статью про JavaScript!
Вы просмотрели все комментарии