recherche
Maisoninterface Webjs tutorielDévelopper l'automatisation des médias sociaux : partage LinkedIn avec une fonction sans serveur

Après la publication d'un nouvel article ou d'un nouvel article de blog, le besoin d'en faire la promotion sur les réseaux sociaux se fait sentir. Partager manuellement la publication peut prendre du temps et être inefficace. Dans cet article, nous explorerons comment créer une fonction sans serveur pour partager l'URL d'un article sur LinkedIn à l'aide de son client API JavaScript et des fonctions sans serveur Netlify. Cela fait partie de la création d'un flux de travail automatisé pour la promotion des médias sociaux.

Table des matières

  • Table des matières
  • Prérequis
  • Commencer
    • Configuration des autorisations
    • Configuration des paramètres OAuth 2.0
  • Partager une publication avec une URL à l'aide du client JS de l'API LinkedIn
    • Obtenir l'identifiant unique de l'utilisateur
    • Partager l'URL d'une publication
  • Exposer en tant que fonction sans serveur Netlify
  • Test de la fonctionnalité
  • Déploiement avec Netlify
  • Résumé

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

  • Un compte LinkedIn
  • Node.js et Netlify CLI installés.
  • Un compte Netlify et un site créé pour déployer la fonction serverless.
  • Connaissance de base de JavaScript et TypeScript.

Commencer

Pour commencer à travailler avec les API LinkedIn, nous devons effectuer les étapes suivantes :

  1. Rendez-vous sur LinkedIn Developer Console avec votre compte LinkedIn.
  2. Créez une nouvelle application en cliquant sur le bouton Créer une application. Building Social Media Automation: LinkedIn Sharing with Serverless Function
  3. Remplissez les détails tels que le nom de l'application (Social Media Tester, par exemple) et l'image du logo de l'application.
  4. Vous aurez besoin d'une page d'entreprise LinkedIn à associer à l'application que vous créez (toute page à laquelle vous disposez d'un accès administrateur pour pouvoir vérifier la connexion par la suite).

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Une fois terminé, le portail vous redirigera vers le tableau de bord de l'application, où nous pourrons commencer à configurer les autorisations et les produits API dont nous avons besoin pour l'application.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Configuration des autorisations

Dans le tableau de bord de l'application, cliquez sur les onglets Produits et demandez l'accès au partage sur LinkedIn et connectez-vous avec LinkedIn à l'aide des produits OpenID Connect.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Configuration des paramètres OAuth 2.0

Une fois ces autorisations accordées, nous pouvons nous diriger vers l'outil générateur de jetons OAuth 2.0 pour générer un jeton d'accès pour l'application. Le jeton doit inclure les étendues suivantes : w_member_social pour la publication au nom de l'utilisateur, ainsi que profile et openid pour l'authentification de l'utilisateur et les informations de profil.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Ce jeton d'accès est un jeton OAuth à 3 pattes, garantissant que l'utilisateur a explicitement autorisé l'application à agir en son nom. Après avoir généré le jeton, nous pouvons l'utiliser pour nous authentifier et envoyer des requêtes en toute sécurité aux API LinkedIn. De plus, nous pouvons consulter les autorisations et les étendues accordées à l'application dans l'onglet Auth du tableau de bord de l'application.

Super ! Maintenant que nous avons le jeton d'accès et l'application configurés, nous pouvons commencer à créer l'automatisation pour publier sur LinkedIn au nom de l'utilisateur (qui, dans ce cas, c'est nous).

Partager une publication avec une URL à l'aide du client JS de l'API LinkedIn

Pour commencer à partager des publications par programme, nous pouvons utiliser le client JavaScript officiel de l'API LinkedIn pour Node.js en l'installant en tant que dépendance de projet :

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client

Cette bibliothèque offre un moyen simple et léger d'interagir avec les points de terminaison de l'API LinkedIn, en exploitant Axios et TypeScript sous le capot.

Ensuite, créons un nouveau fichier, linkedin.ts, pour encapsuler la logique de partage de publications sur LinkedIn. Nous commençons par initialiser une instance client pour interagir avec l'API, comme indiqué ci-dessous :

// linkedin.ts
import { RestliClient } from 'linkedin-api-js-client';

const client = new RestliClient();

Obtenir l'identifiant unique de l'utilisateur

Pour publier au nom d'un utilisateur, nous devons d'abord récupérer l'identifiant unique de l'utilisateur (qui est différent de son identifiant LinkedIn). Cela peut être fait en utilisant le point de terminaison /userinfo avec le jeton d'accès généré précédemment :

// linkedin.ts
const getUserId = async (accessToken: string) => {
  const userResponse = await client.get({
    resourcePath: "/userinfo",
    accessToken
  });

  return userResponse.data?.sub;
};

L'identifiant unique se trouve dans le sous-champ des données de la réponse. Cette valeur est requise pour l'étape suivante : partager une publication au nom de l'utilisateur.

Partager l'URL d'une publication

Au sein de linkedin.ts, nous définissons une fonction pour partager l'URL d'une publication comme suit :

type SharePostArgs = {
  url: string;
  text: string;
};

export const sharePost = async (token: string, content: SharePostArgs) => {
  //logic
};

La fonction sharePost prend le jeton d'accès et le contenu à partager, qui inclut l'URL et le texte pour accompagner la publication. Nous créerons ensuite une nouvelle entité de publication sur la ressource Contenu généré par l'utilisateur à l'aide du point de terminaison /ugcPosts, comme indiqué ci-dessous :

export const sharePost = async (token: string, content: SharePostArgs) => {
  const response = await client.create({
    resourcePath: '/ugcPosts',
    accessToken: token,
    entity: {
      //entity payload
    }
  });
};

La charge utile de l'entité est configurée pour inclure l'ID unique de l'utilisateur, récupéré précédemment, en tant qu'auteur. Le champ auteur suit le format urn:li:person:${userId}. De plus, nous précisons :

  • L'état du cycle de vie comme "PUBLIÉ".
  • La visibilité en "PUBLIC" donc la publication est visible sur le réseau LinkedIn.

Voici la mise en œuvre mise à jour :

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client

Ensuite, nous définissons le contenu de partage dans le champ spécifiqueContent de l'objet entité. Pour ce scénario, le champ SpecificContent inclut un objet com.linkedin.ugc.ShareContent, qui possède les propriétés suivantes :

  • shareCommentary : accepte content.text comme contenu de texte principal à afficher.
  • shareMediaCategory : Spécifie le type de média partagé dans la publication (défini comme "ARTICLE").
  • media : un tableau d'actifs multimédias pour la catégorie "ARTICLE", où chaque élément comprend : l'URL à partager et un statut PRÊT.

Ci-dessous le code mis à jour :

// linkedin.ts
import { RestliClient } from 'linkedin-api-js-client';

const client = new RestliClient();

Une fois la demande terminée avec succès, la réponse contient un CreateEntityId, représentant l'ID unique de l'entité créée. Nous pouvons renvoyer cette valeur à l'appelant pour référence ultérieure :

// linkedin.ts
const getUserId = async (accessToken: string) => {
  const userResponse = await client.get({
    resourcePath: "/userinfo",
    accessToken
  });

  return userResponse.data?.sub;
};

Et c'est tout ! Nous avons créé une fonction qui exploite l'API LinkedIn pour partager une URL de publication au nom d'un utilisateur. Dans la prochaine étape, nous exposerons cette fonction en tant que point de terminaison sans serveur utilisant Netlify, nous rapprochant ainsi de l'automatisation complète du processus de partage d'articles sur les réseaux sociaux.

Exposer en tant que fonction sans serveur Netlify

Nous exécutons la commande CLI netlifyfunctions :créez et suivez les invites pour échafauder une nouvelle fonction sans serveur Netlify nommée share-on-linkedin. La CLI Netlify générera la fonction dans le répertoire des fonctions avec le code initial suivant :

type SharePostArgs = {
  url: string;
  text: string;
};

export const sharePost = async (token: string, content: SharePostArgs) => {
  //logic
};

Dans ce code ci-dessus, nous utilisons TypeScript et définissons la fonction comme asynchrone pour gérer la nature asynchrone des appels d'API LinkedIn.

Ensuite, nous mettons à jour la fonction sans serveur pour effectuer les actions suivantes :

  • Analyser le corps de la requête pour extraire le contenu à partager,
  • Récupérer le jeton d'accès à partir des variables d'environnement (peut être défini dans le fichier .env à la racine du projet),
  • Appelez la fonction sharePost (définie précédemment dans linkedin.ts ) avec les paramètres extraits, et
  • Renvoyer l'ID d'entité créé comme réponse.
export const sharePost = async (token: string, content: SharePostArgs) => {
  const response = await client.create({
    resourcePath: '/ugcPosts',
    accessToken: token,
    entity: {
      //entity payload
    }
  });
};

À ce stade, la fonction sans serveur est prête. Nous pouvons le déployer sur Netlify et tester ses fonctionnalités en envoyant des requêtes POST au point final.

Test de la fonctionnalité

Pour tester la fonction sans serveur, démarrez un serveur local à l'aide de la commande CLI netlify dev. Ensuite, utilisez un outil comme Postman ou Insomnia pour envoyer une requête POST au point de terminaison du serveur avec la charge utile JSON suivante :

export const sharePost = async (token: string, content: SharePostArgs) => {
  //Get user's unique id
  const userId = await getUserId(token);

  const response = await client.create({
    resourcePath: '/ugcPosts',
    accessToken: token,
    entity: {
      author: `urn:li:person:${userId}`,
      lifecycleState: "PUBLISHED",      
      visibility: {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
      }
    }
  });
};

Alternativement, nous pouvons créer une interface utilisateur de formulaire simple pour interagir avec l'API de la fonction sans serveur et vérifier que la publication est partagée avec succès sur LinkedIn.

Une fois que la fonction fonctionne comme prévu, procédons à son déploiement sur Netlify pour la rendre disponible.

Déployer avec Netlify

Pour déployer notre fonction sur Netlify, exécutez la commande suivante :

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client

La CLI déploie la fonction dans votre environnement de production Netlify. Vous pouvez ensuite trouver le point de terminaison de la fonction dans le tableau de bord Netlify.

Important : Assurez-vous de configurer la variable d'environnement LINKEDIN_ACCESS_TOKEN dans le tableau de bord. Cette étape est indispensable pour que la fonction s'authentifie et fonctionne correctement.

Building Social Media Automation: LinkedIn Sharing with Serverless Function


Résumé

Nous avons créé avec succès une API sans serveur pour partager l'URL d'un article sur LinkedIn au nom d'un utilisateur, en tirant parti du client JavaScript de l'API LinkedIn et des fonctions sans serveur de Netlify. Cela marque une étape importante vers l’automatisation du processus de partage des articles de blog sur les réseaux sociaux.

À partir de là, nous pouvons étendre le flux de travail d'automatisation pour inclure d'autres plateformes de médias sociaux et tâches planifiées. Par exemple, nous pourrions intégrer des plateformes comme X (anciennement Twitter), Facebook ou BlueSky, et personnaliser le timing et le contenu des publications pour maximiser l'engagement et la portée du public.

Sur ce, restez à l'écoute pour plus de mises à jour sur cette série !

? Découvrez Vue 3 et TypeScript avec mon nouveau livre Learning Vue !

? Envie de me soutenir ? Achetez-moi un café.

Vous aimez cet article ou le trouvez-vous utile ? Partagez-le ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript: Explorer la polyvalence d'un langage WebJavaScript: Explorer la polyvalence d'un langage WebApr 11, 2025 am 12:01 AM

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

L'évolution de JavaScript: tendances actuelles et perspectives d'avenirL'évolution de JavaScript: tendances actuelles et perspectives d'avenirApr 10, 2025 am 09:33 AM

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Démystifier javascript: ce qu'il fait et pourquoi c'est importantDémystifier javascript: ce qu'il fait et pourquoi c'est importantApr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python ou JavaScript est-il meilleur?Python ou JavaScript est-il meilleur?Apr 06, 2025 am 12:14 AM

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

Comment installer JavaScript?Comment installer JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.

Comment envoyer des notifications avant le début d'une tâche en quartz?Comment envoyer des notifications avant le début d'une tâche en quartz?Apr 04, 2025 pm 09:24 PM

Comment envoyer à l'avance des notifications de tâches en quartz lors de l'utilisation du minuteur de quartz pour planifier une tâche, le temps d'exécution de la tâche est défini par l'expression CRON. Maintenant...

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),