Heim >Web-Frontend >js-Tutorial >Aufbau einer Social-Media-Automatisierung: LinkedIn-Sharing mit serverloser Funktion
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.
Um diesem Tutorial folgen zu können, benötigen Sie Folgendes:
Um mit LinkedIn APIs arbeiten zu können, müssen wir die folgenden Schritte ausführen:
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.
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.
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.
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.
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
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();
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; };
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.
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 };
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 } }); };
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:
Hier ist die aktualisierte Implementierung:
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
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:
Unten finden Sie den aktualisierten Code:
// linkedin.ts import { RestliClient } from 'linkedin-api-js-client'; const client = new RestliClient();
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; };
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.
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 };
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:
export const sharePost = async (token: string, content: SharePostArgs) => { const response = await client.create({ resourcePath: '/ugcPosts', accessToken: token, entity: { //entity payload } }); };
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.
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" } } }); };
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.
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
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.
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!