發布新文章或部落格文章後,就需要在社群媒體上進行推廣。手動分享貼文可能既耗時又低效。在本文中,我們將探討如何建立一個無伺服器函數,以使用其 JavaScript API 用戶端和 Netlify 無伺服器函數在 LinkedIn 上共用文章 URL。這是建立社群媒體推廣自動化工作流程的一部分。
目錄
- 目錄
- 先決條件
-
入門
- 設定權限
- 設定 OAuth 2.0 設定
-
使用 LinkedIn API JS 用戶端透過 URL 共享帖子
- 取得使用者的唯一id
- 分享貼文網址
- 公開為 Netlify 無伺服器函數
- 測試功能
- 使用 Netlify 進行部署
- 總結
先決條件
要學習本教程,您將需要以下內容:
- LinkedIn 帳號
- 已安裝 Node.js 和 Netlify CLI。
- 為部署無伺服器功能而建立的 Netlify 帳戶和網站。
- JavaScript 和 TypeScript 的基礎。
入門
要開始使用 LinkedIn API,我們需要執行以下步驟:
- 使用您的 LinkedIn 帳戶前往 LinkedIn 開發者控制台。
- 點擊「建立應用程式」按鈕以建立新應用程式。
- 填寫應用程式名稱(例如社交媒體測試器)和應用程式徽標圖像等詳細資訊。
- 您將需要一個 LinkedIn 公司頁面來與您正在建立的應用程式關聯(您擁有管理員存取權限的任何頁面都可以在之後驗證連線)。
完成後,入口網站會將您重新導向到應用程式儀表板,我們可以在其中開始設定應用程式所需的權限和 API 產品。
設定權限
在應用程式儀表板中,點擊產品標籤並要求存取「在 LinkedIn 上分享」和使用 OpenID Connect 產品透過 LinkedIn 登入。
配置 OAuth 2.0 設定
授予這些權限後,我們可以使用 OAuth 2.0 令牌產生器工具為應用程式產生存取權杖。令牌應包含以下範圍:w_member_social 用於代表使用者發帖,profile 和 openid 用於使用者身份驗證和個人資料資訊。
此存取權杖是一個三足 OAuth 令牌,確保使用者已明確授權應用程式代表他們執行操作。產生令牌後,我們可以使用它來進行身份驗證並安全地向 LinkedIn API 發出請求。此外,我們可以在應用程式儀表板的 Auth 標籤中查看授予應用程式的權限和範圍。
太棒了!現在我們已經設定了存取權杖和應用程序,我們可以開始建立自動化以代表用戶(在本例中為我們)在 LinkedIn 上發布資訊。
使用 LinkedIn API JS 用戶端透過 URL 共享帖子
要開始以程式設計方式共享帖子,我們可以透過將其安裝為專案依賴項來使用官方 LinkedIn API JavaScript Client for Node.js:
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
該庫提供了一種直接、輕量級的方式與 LinkedIn API 端點交互,在底層利用 Axios 和 TypeScript。
接下來,讓我們建立一個新檔案 linkedin.ts 來封裝在 LinkedIn 上分享貼文的邏輯。我們首先初始化一個客戶端實例來與 API 交互,如下所示:
// linkedin.ts import { RestliClient } from 'linkedin-api-js-client'; const client = new RestliClient();
獲取用戶的唯一id
要代表用戶發帖,我們首先需要檢索用戶的唯一 ID(與用戶的 LinkedIn 句柄不同)。這可以透過使用 /userinfo 端點和先前產生的存取權杖來完成:
// linkedin.ts const getUserId = async (accessToken: string) => { const userResponse = await client.get({ resourcePath: "/userinfo", accessToken }); return userResponse.data?.sub; };
唯一 ID 位於回應資料的子欄位中。下一步需要此值:代表用戶分享貼文。
分享貼文網址
在 linkedin.ts 中,我們定義了一個共享貼文 URL 的函數,如下所示:
type SharePostArgs = { url: string; text: string; }; export const sharePost = async (token: string, content: SharePostArgs) => { //logic };
sharePost 函數會取得存取權杖和要分享的內容,其中包括 URL 和貼文附帶的文字。然後,我們將使用 /ugcPosts 端點在使用者生成內容資源上建立一個新的貼文實體,如下所示:
export const sharePost = async (token: string, content: SharePostArgs) => { const response = await client.create({ resourcePath: '/ugcPosts', accessToken: token, entity: { //entity payload } }); };
實體有效負載配置為包含先前檢索到的使用者的唯一 ID(作為作者)。作者欄位遵循格式 urn:li:person:${userId}。此外,我們指定:
- 生命週期狀態為「已發布」。
- 可見性為“PUBLIC”,因此該貼文對 LinkedIn 網路可見。
這是更新的實作:
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
接下來,我們在實體物件的 SpecificContent 欄位中定義共用內容。對於此場景,specifiedContent 欄位包含一個 com.linkedin.ugc.ShareContent 對象,該物件具有以下屬性:
- shareCommentary:接受content.text作為要顯示的主要文字內容。
- shareMediaCategory:指定貼文中分享的媒體類型(設定為「ARTICLE」)。
- 媒體:「文章」類別的媒體資產數組,其中每個項目包括:要共享的 URL 和就緒狀態。
以下是更新後的程式碼:
// linkedin.ts import { RestliClient } from 'linkedin-api-js-client'; const client = new RestliClient();
成功完成請求後,回應包含一個createdEntityId,代表所建立實體的唯一ID。我們可以將此值傳回給呼叫者以供進一步參考:
// linkedin.ts const getUserId = async (accessToken: string) => { const userResponse = await client.get({ resourcePath: "/userinfo", accessToken }); return userResponse.data?.sub; };
就是這樣!我們創建了一個函數,利用 LinkedIn API 代表用戶共享貼文 URL。在下一步中,我們將使用 Netlify 將此功能公開為無伺服器端點,使我們更接近完全自動化在社群媒體上分享文章的過程。
公開為 Netlify 無伺服器函數
我們執行 CLI 指令 netlify Functions:create 並依照指示建立一個名為 share-on-linkedin 的新 Netlify 無伺服器函數。 Netlify CLI 將在函數目錄中產生具有以下初始程式碼的函數:
type SharePostArgs = { url: string; text: string; }; export const sharePost = async (token: string, content: SharePostArgs) => { //logic };
在上面的程式碼中,我們使用 TypeScript 並將函數定義為 async 來處理 LinkedIn API 呼叫的非同步性質。
接下來,我們更新無伺服器函數以執行以下操作:
- 解析請求正文以提取要分享的內容,
- 從環境變數中擷取存取權杖(可以在專案根目錄的 .env 檔案中設定),
- 使用提取的參數呼叫 sharePost 函數(之前在 linkedin.ts 中定義),並且
- 傳回已建立的實體 ID 作為回應。
export const sharePost = async (token: string, content: SharePostArgs) => { const response = await client.create({ resourcePath: '/ugcPosts', accessToken: token, entity: { //entity payload } }); };
至此,Serverless 功能就準備好了。我們可以將其部署到 Netlify 並透過向端點發出 POST 請求來測試其功能。
測試功能
要測試無伺服器功能,請使用 CLI 指令 netlify dev 啟動本機伺服器。然後,使用 Postman 或 Insomnia 等工具使用以下 JSON 負載向伺服器端點發送 POST 請求:
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" } } }); };
或者,我們可以建立一個簡單的表單 UI 來與無伺服器函數 API 交互,並驗證貼文是否已成功在 LinkedIn 上共享。
一旦該功能按預期工作,我們就可以繼續將其部署到 Netlify 以使其可供使用。
使用 Netlify 進行部署
要將我們的函數部署到 Netlify,請執行以下命令:
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
CLI 將函數部署到您的 Netlify 生產環境。然後,您可以在 Netlify 儀表板中找到該函數端點。
重要: 確保在儀表板中配置 LINKEDIN_ACCESS_TOKEN 環境變數。此步驟對於函數的驗證和正確運行至關重要。
概括
我們利用 LinkedIn API JavaScript 用戶端和 Netlify 無伺服器功能,成功建立了一個無伺服器 API,代表使用者在 LinkedIn 上共享文章 URL。這標誌著部落格文章社交媒體共享流程自動化的重要一步。
從這裡,我們可以擴展自動化工作流程以包括其他社群媒體平台和規劃任務。例如,我們可以整合 X(以前稱為 Twitter)、Facebook 或 BlueSky 等平台,並自訂貼文的時間和內容,以最大限度地提高受眾參與度和覆蓋範圍。
就這樣,請繼續關注本系列的更多更新!
? 透過我的新書《學習 Vue》了解 Vue 3 和 TypeScript!
? 想支持我嗎?請我喝杯咖啡。
喜歡這篇文章或覺得它有幫助嗎?分享一下?
以上是建立社群媒體自動化:LinkedIn 與無伺服器功能共享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。