Maison > interface Web > js tutoriel > Développer l'automatisation des médias sociaux : partage LinkedIn avec une fonction sans serveur

Développer l'automatisation des médias sociaux : partage LinkedIn avec une fonction sans serveur

Barbara Streisand
Libérer: 2025-01-08 16:33:49
original
968 Les gens l'ont consulté

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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();
Copier après la connexion
Copier après la connexion

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;
};
Copier après la connexion
Copier après la connexion

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
};
Copier après la connexion
Copier après la connexion

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
    }
  });
};
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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();
Copier après la connexion
Copier après la connexion

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;
};
Copier après la connexion
Copier après la connexion

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
};
Copier après la connexion
Copier après la connexion

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
    }
  });
};
Copier après la connexion
Copier après la connexion

À 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"
      }
    }
  });
};
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal