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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

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 ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

See all articles