Heim > Web-Frontend > js-Tutorial > Aufbau einer Social-Media-Automatisierung: LinkedIn-Sharing mit serverloser Funktion

Aufbau einer Social-Media-Automatisierung: LinkedIn-Sharing mit serverloser Funktion

Barbara Streisand
Freigeben: 2025-01-08 16:33:49
Original
964 Leute haben es durchsucht

Nach der Veröffentlichung eines neuen Artikels oder Blogbeitrags entsteht die Notwendigkeit, ihn in den sozialen Medien zu bewerben. Das manuelle Teilen des Beitrags kann zeitaufwändig und ineffizient sein. In diesem Artikel erfahren Sie, wie Sie mithilfe des JavaScript-API-Clients und der serverlosen Funktionen von Netlify eine serverlose Funktion erstellen, um eine Artikel-URL auf LinkedIn zu teilen. Dies ist Teil des Aufbaus eines automatisierten Workflows für die Social-Media-Werbung.

Inhaltsverzeichnis

  • Inhaltsverzeichnis
  • Voraussetzungen
  • Erste Schritte
    • Einrichten der Berechtigungen
    • OAuth 2.0-Einstellungen konfigurieren
  • Teilen eines Beitrags mit URL mithilfe des LinkedIn API JS-Clients
    • Eindeutige ID des Benutzers abrufen
    • Teilen einer Beitrags-URL
  • Bereitstellung als serverlose Netlify-Funktion
  • Funktionalität testen
  • Bereitstellung mit Netlify
  • Zusammenfassung

Voraussetzungen

Um diesem Tutorial folgen zu können, benötigen Sie Folgendes:

  • Ein LinkedIn-Konto
  • Node.js und Netlify CLI installiert.
  • Ein Netlify-Konto und eine Website, die für die Bereitstellung der serverlosen Funktion erstellt wurden.
  • Grundkenntnisse in JavaScript und TypeScript.

Erste Schritte

Um mit LinkedIn APIs arbeiten zu können, müssen wir die folgenden Schritte ausführen:

  1. Gehen Sie mit Ihrem LinkedIn-Konto zur LinkedIn Developer Console.
  2. Erstellen Sie eine neue App, indem Sie auf die Schaltfläche „App erstellen“ klicken. Building Social Media Automation: LinkedIn Sharing with Serverless Function
  3. Geben Sie die Details wie den App-Namen (z. B. Social Media Tester) und das App-Logobild ein.
  4. Sie benötigen eine LinkedIn-Unternehmensseite, um sie mit der von Ihnen erstellten App zu verknüpfen (jede Seite, auf die Sie Administratorzugriff haben, um die Verbindung anschließend überprüfen zu können).

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Sobald Sie fertig sind, leitet Sie das Portal zum App-Dashboard weiter, wo wir mit der Konfiguration der Berechtigungen und API-Produkte beginnen können, die wir für die App benötigen.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Einrichten der Berechtigungen

Klicken Sie im App-Dashboard auf die Registerkarten Produkte und fordern Sie Zugriff auf die Produkte „Auf LinkedIn teilen“ und „Mit LinkedIn anmelden mit OpenID Connect“ an.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Konfigurieren der OAuth 2.0-Einstellungen

Wenn diese Berechtigungen erteilt sind, können wir zum OAuth 2.0-Token-Generator-Tool gehen, um ein Zugriffstoken für die App zu generieren. Das Token sollte die folgenden Bereiche umfassen: w_member_social zum Posten im Namen des Benutzers sowie Profile und OpenID für Benutzerauthentifizierung und Profilinformationen.

Building Social Media Automation: LinkedIn Sharing with Serverless Function

Bei diesem Zugriffstoken handelt es sich um einen dreibeinigen OAuth-Token, der sicherstellt, dass der Benutzer die Anwendung ausdrücklich autorisiert hat, in seinem Namen zu handeln. Nachdem wir das Token generiert haben, können wir es zur Authentifizierung und sicheren Anfrage an die LinkedIn-APIs verwenden. Darüber hinaus können wir die der App gewährten Berechtigungen und Bereiche auf der Registerkarte Auth des App-Dashboards überprüfen.

Großartig! Nachdem wir nun das Zugriffstoken und die App eingerichtet haben, können wir mit dem Aufbau der Automatisierung beginnen, um im Namen des Benutzers (der in diesem Fall wir sind) auf LinkedIn zu posten.

Teilen eines Beitrags mit URL mithilfe des LinkedIn API JS-Clients

Um Beiträge programmgesteuert zu teilen, können wir den offiziellen LinkedIn-API-JavaScript-Client für Node.js verwenden, indem wir ihn als Projektabhängigkeit installieren:

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Diese Bibliothek bietet eine unkomplizierte und einfache Möglichkeit, mit LinkedIn-API-Endpunkten zu interagieren und dabei Axios und TypeScript unter der Haube zu nutzen.

Als nächstes erstellen wir eine neue Datei, LinkedIn.ts, um die Logik zum Teilen von Beiträgen auf LinkedIn zu kapseln. Wir beginnen mit der Initialisierung einer Client-Instanz für die Interaktion mit der API, wie unten gezeigt:

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

const client = new RestliClient();
Nach dem Login kopieren
Nach dem Login kopieren

Abrufen der eindeutigen ID des Benutzers

Um im Namen eines Benutzers zu posten, müssen wir zunächst die eindeutige ID des Benutzers abrufen (die sich vom LinkedIn-Handle des Benutzers unterscheidet). Dies kann durch die Verwendung des /userinfo-Endpunkts mit dem zuvor generierten Zugriffstoken erfolgen:

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

  return userResponse.data?.sub;
};
Nach dem Login kopieren
Nach dem Login kopieren

Die eindeutige ID befindet sich im Unterfeld der Antwortdaten. Dieser Wert ist für den nächsten Schritt erforderlich: Teilen eines Beitrags im Namen des Benutzers.

Teilen einer Beitrags-URL

In LinkedIn.ts definieren wir eine Funktion zum Teilen der URL eines Beitrags wie folgt:

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

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

Die SharePost-Funktion benötigt das Zugriffstoken und den zu teilenden Inhalt, einschließlich der URL und des Begleittexts zum Beitrag. Anschließend erstellen wir mithilfe des Endpunkts /ugcPosts eine neue Beitragsentität auf der Ressource „Benutzergenerierte Inhalte“, wie unten gezeigt:

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

Die Entitätsnutzlast ist so konfiguriert, dass sie die eindeutige ID des Benutzers enthält, die zuvor als Autor abgerufen wurde. Das Feld „Autor“ folgt dem Format urn:li:person:${userId}. Zusätzlich geben wir an:

  • Der Lebenszyklusstatus lautet „VERÖFFENTLICHT“.
  • Die Sichtbarkeit lautet „ÖFFENTLICH“, sodass der Beitrag für das LinkedIn-Netzwerk sichtbar ist.

Hier ist die aktualisierte Implementierung:

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Als nächstes definieren wir den Freigabeinhalt im Feld SpecificContent des Entitätsobjekts. Für dieses Szenario enthält das Feld „specialContent“ ein com.linkedin.ugc.ShareContent-Objekt mit den folgenden Eigenschaften:

  • shareCommentary: Akzeptiert content.text als anzuzeigenden Haupttextinhalt.
  • shareMediaCategory: Gibt den Typ der im Beitrag geteilten Medien an (festgelegt als „ARTICLE“).
  • Medien: Ein Array von Medienressourcen für die Kategorie „ARTIKEL“, wobei jedes Element Folgendes enthält: die URL zum Teilen und einen BEREIT-Status.

Unten finden Sie den aktualisierten Code:

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

const client = new RestliClient();
Nach dem Login kopieren
Nach dem Login kopieren

Nach erfolgreichem Abschluss der Anfrage enthält die Antwort eine erstellteEntityId, die die eindeutige ID der erstellten Entität darstellt. Wir können diesen Wert zur weiteren Referenz an den Aufrufer zurückgeben:

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

  return userResponse.data?.sub;
};
Nach dem Login kopieren
Nach dem Login kopieren

Und das ist es! Wir haben eine Funktion erstellt, die die LinkedIn-API nutzt, um eine Beitrags-URL im Namen eines Benutzers zu teilen. Im nächsten Schritt stellen wir diese Funktion mithilfe von Netlify als serverlosen Endpunkt bereit und kommen so der vollständigen Automatisierung des Prozesses des Teilens von Artikeln in sozialen Medien näher.

Bereitstellung als serverlose Netlify-Funktion

Wir führen den CLI-Befehl „netlify Functions:create“ aus und folgen den Anweisungen, um eine neue serverlose Netlify-Funktion mit dem Namen „share-on-linkedin“ zu erstellen. Die Netlify-CLI generiert die Funktion im Funktionsverzeichnis mit dem folgenden Anfangscode:

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

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

In diesem obigen Code verwenden wir TypeScript und definieren die Funktion als asynchron, um die asynchrone Natur von LinkedIn-API-Aufrufen zu bewältigen.

Als nächstes aktualisieren wir die serverlose Funktion, um die folgenden Aktionen auszuführen:

  • Parsen Sie den Anforderungstext, um den zu teilenden Inhalt zu extrahieren,
  • Rufen Sie das Zugriffstoken aus Umgebungsvariablen ab (kann in der .env-Datei im Projektstamm festgelegt werden),
  • Rufen Sie die SharePost-Funktion (zuvor in LinkedIn.ts definiert) mit den extrahierten Parametern auf und
  • Gibt die erstellte Entitäts-ID als Antwort zurück.
export const sharePost = async (token: string, content: SharePostArgs) => {
  const response = await client.create({
    resourcePath: '/ugcPosts',
    accessToken: token,
    entity: {
      //entity payload
    }
  });
};
Nach dem Login kopieren
Nach dem Login kopieren

Zu diesem Zeitpunkt ist die serverlose Funktion bereit. Wir können es auf Netlify bereitstellen und seine Funktionalität testen, indem wir POST-Anfragen an den Endpunkt stellen.

Testen der Funktionalität

Um die serverlose Funktion zu testen, starten Sie einen lokalen Server mit dem CLI-Befehl netlify dev. Verwenden Sie dann ein Tool wie Postman oder Insomnia, um eine POST-Anfrage mit der folgenden JSON-Nutzlast an den Serverendpunkt zu senden:

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"
      }
    }
  });
};
Nach dem Login kopieren

Alternativ können wir eine einfache Formular-Benutzeroberfläche erstellen, um mit der serverlosen Funktions-API zu interagieren und zu überprüfen, ob der Beitrag erfolgreich auf LinkedIn geteilt wurde.

Sobald die Funktion wie erwartet funktioniert, fahren wir mit der Bereitstellung in Netlify fort, um sie zur Verwendung verfügbar zu machen.

Bereitstellung mit Netlify

Um unsere Funktion auf Netlify bereitzustellen, führen Sie den folgenden Befehl aus:

npm install linkedin-api-js-client

# or with yarn
yarn add linkedin-api-js-client
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die CLI stellt die Funktion in Ihrer Netlify-Produktionsumgebung bereit. Sie finden den Funktionsendpunkt dann im Netlify-Dashboard.

Wichtig: Stellen Sie sicher, dass Sie die Umgebungsvariable LINKEDIN_ACCESS_TOKEN im Dashboard konfigurieren. Dieser Schritt ist für die Authentifizierung und den ordnungsgemäßen Betrieb der Funktion unerlässlich.

Building Social Media Automation: LinkedIn Sharing with Serverless Function


Zusammenfassung

Wir haben erfolgreich eine serverlose API entwickelt, um im Namen eines Benutzers eine Artikel-URL auf LinkedIn zu teilen. Dabei nutzen wir den LinkedIn API JavaScript Client und die serverlosen Funktionen von Netlify. Dies stellt einen bedeutenden Schritt zur Automatisierung des Social-Media-Sharing-Prozesses für Blogbeiträge dar.

Von hier aus können wir den Automatisierungsworkflow auf andere Social-Media-Plattformen und geplante Aufgaben erweitern. Wir könnten beispielsweise Plattformen wie X (ehemals Twitter), Facebook oder BlueSky integrieren und das Timing und den Inhalt von Beiträgen anpassen, um das Engagement und die Reichweite des Publikums zu maximieren.

In diesem Sinne bleiben Sie dran für weitere Updates zu dieser Serie!

? Erfahren Sie mehr über Vue 3 und TypeScript mit meinem neuen Buch Learning Vue!

? Willst du mich unterstützen? Kauf mir einen Kaffee.

Gefällt Ihnen dieser Beitrag oder finden Sie ihn hilfreich? Teilen?

Das obige ist der detaillierte Inhalt vonAufbau einer Social-Media-Automatisierung: LinkedIn-Sharing mit serverloser Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage