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

Jan 08, 2025 pm 04:33 PM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Mar 18, 2025 pm 03:17 PM

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

Wie benutze ich Javas Sammlungsrahmen effektiv? Wie benutze ich Javas Sammlungsrahmen effektiv? Mar 13, 2025 pm 12:28 PM

In diesem Artikel wird der effektive Gebrauch des Sammlungsrahmens von Java untersucht. Es betont die Auswahl geeigneter Sammlungen (Liste, Set, Karte, Warteschlange) basierend auf Datenstruktur, Leistungsanforderungen und Thread -Sicherheit. Optimierung der Sammlungsnutzung durch effizientes Gebrauch

TypeScript für Anfänger, Teil 2: Grundlegende Datentypen TypeScript für Anfänger, Teil 2: Grundlegende Datentypen Mar 19, 2025 am 09:10 AM

Sobald Sie das Typscript-Tutorial für Einstiegsklasse gemeistert haben, sollten Sie in der Lage sein, Ihren eigenen Code in eine IDE zu schreiben, die TypeScript unterstützt und in JavaScript zusammenfasst. Dieses Tutorial wird in verschiedenen Datentypen in TypeScript eingetaucht. JavaScript hat sieben Datentypen: NULL, UNDEFINED, BOOLEAN, NUMMER, STRING, SYMBOL (durch ES6 eingeführt) und Objekt. TypeScript definiert mehr Typen auf dieser Grundlage, und dieses Tutorial wird alle ausführlich behandelt. Null -Datentyp Wie JavaScript, null in TypeScript

Erste Schritte mit Chart.js: Kuchen-, Donut- und Bubble -Diagramme Erste Schritte mit Chart.js: Kuchen-, Donut- und Bubble -Diagramme Mar 15, 2025 am 09:19 AM

In diesem Tutorial wird erläutert, wie man mit Diagramm.js Kuchen-, Ring- und Bubble -Diagramme erstellt. Zuvor haben wir vier Chart -Arten von Charts gelernt. Erstellen Sie Kuchen- und Ringdiagramme Kreisdiagramme und Ringdiagramme sind ideal, um die Proportionen eines Ganzen anzuzeigen, das in verschiedene Teile unterteilt ist. Zum Beispiel kann ein Kreisdiagramm verwendet werden, um den Prozentsatz der männlichen Löwen, weiblichen Löwen und jungen Löwen in einer Safari oder den Prozentsatz der Stimmen zu zeigen, die verschiedene Kandidaten bei der Wahl erhalten. Kreisdiagramme eignen sich nur zum Vergleich einzelner Parameter oder Datensätze. Es ist zu beachten, dass das Kreisdiagramm keine Entitäten ohne Wert zeichnen kann, da der Winkel des Lüfters im Kreisdiagramm von der numerischen Größe des Datenpunkts abhängt. Dies bedeutet jede Entität ohne Anteil

See all articles