ソーシャルメディア自動化の構築: サーバーレス機能を備えた LinkedIn 共有
新しい記事やブログ投稿を公開した後、ソーシャルメディアでそれを宣伝する必要が生じます。投稿を手動で共有すると時間がかかり、非効率的になる可能性があります。この記事では、JavaScript API クライアントと Netlify サーバーレス関数を使用して、LinkedIn で記事の URL を共有するサーバーレス関数を構築する方法を検討します。これは、ソーシャル メディア プロモーションのための自動ワークフロー構築の一部です。
目次
- 目次
- 前提条件
-
はじめる
- 権限の設定
- OAuth 2.0 設定の構成
-
LinkedIn API JS クライアントを使用して URL を含む投稿を共有する
- ユーザーの一意の ID を取得する
- 投稿 URL を共有する
- Netlify サーバーレス関数として公開
- 機能のテスト
- Netlify を使用したデプロイ
- 概要
前提条件
このチュートリアルを進めるには、次のものが必要です:
- LinkedIn アカウント
- Node.js と Netlify CLI がインストールされています。
- サーバーレス機能をデプロイするために作成された Netlify アカウントとサイト。
- JavaScript と TypeScript の基本的な知識。
はじめる
LinkedIn API の使用を開始するには、次の手順を実行する必要があります:
- LinkedIn アカウントを使用して LinkedIn 開発者コンソールにアクセスします。
- 「アプリの作成」ボタンをクリックして、新しいアプリを作成します。
- アプリ名 (ソーシャル メディア テスター など) やアプリのロゴ画像などの詳細を入力します。
- 作成中のアプリに関連付けるには、LinkedIn 会社ページにアクセスする必要があります (後で接続を確認するには、管理者アクセス権を持つ任意のページ)。
完了すると、ポータルはアプリのダッシュボードにリダイレクトされ、アプリに必要な権限と API 製品の構成を開始できます。
権限の設定
アプリのダッシュボードで、製品 タブをクリックし、OpenID Connect 製品を使用して LinkedIn で共有および LinkedIn でサインインへのアクセスをリクエストします。
OAuth 2.0設定の構成
これらの権限が付与されると、OAuth 2.0 トークン生成ツールにアクセスして、アプリのアクセス トークンを生成できます。トークンには次のスコープが含まれている必要があります: ユーザーに代わって投稿するための w_member_social、ユーザー認証とプロフィール情報のための profile と openid。
このアクセス トークンは 3-legged OAuth トークンであり、ユーザーがアプリケーションがユーザーの代わりに動作することを明示的に承認していることを保証します。トークンを生成した後、それを使用して認証を行い、LinkedIn API へのリクエストを安全に行うことができます。さらに、アプリのダッシュボードの 認証 タブで、アプリに付与された権限とスコープを確認できます。
すごいですね!アクセス トークンとアプリのセットアップが完了したので、ユーザー (この場合は私たち) に代わって LinkedIn に投稿する自動化の構築を開始できます。
LinkedIn API JS クライアントを使用して URL を含む投稿を共有する
プログラムで投稿の共有を開始するには、Node.js 用の公式 LinkedIn API JavaScript クライアントをプロジェクトの依存関係としてインストールして使用できます。
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
このライブラリは、内部で Axios と TypeScript を活用して、LinkedIn API エンドポイントと対話する簡単で軽量な方法を提供します。
次に、新しいファイル 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 は、応答データのサブフィールドにあります。この値は、次のステップであるユーザーに代わって投稿を共有するために必要です。
投稿URLを共有する
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 フィールド内で共有コンテンツを定義します。このシナリオでは、 specificContent フィールドには、次のプロパティを持つ com.linkedin.ugc.ShareContent オブジェクトが含まれます:
- shareCommentary: content.text を表示するメイン テキスト コンテンツとして受け入れます。
- shareMediaCategory: 投稿で共有されるメディアのタイプを指定します (「ARTICLE」として設定)。
- media: 「ARTICLE」カテゴリのメディア資産の配列。各項目には、共有する URL と READY ステータスが含まれます。
以下は更新されたコードです:
// linkedin.ts import { RestliClient } from 'linkedin-api-js-client'; const client = new RestliClient();
リクエストが正常に完了すると、レスポンスには作成されたエンティティの一意の ID を表す createdEntityId が含まれます。さらに参照するために、この値を呼び出し元に返すことができます:
// 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 function: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 } }); };
この時点で、サーバーレス機能の準備が整いました。これを 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" } } }); };
あるいは、サーバーレス関数 API と対話するための単純なフォーム UI を作成し、投稿が 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 サーバーレス機能を活用して、ユーザーに代わって LinkedIn で記事の URL を共有するサーバーレス API の構築に成功しました。これは、ブログ投稿のソーシャル メディア共有プロセスの自動化に向けた重要な一歩となります。
ここから、自動化ワークフローを拡張して、他のソーシャル メディア プラットフォームやスケジュールされたタスクを含めることができます。たとえば、X (旧 Twitter)、Facebook、BlueSky などのプラットフォームを統合し、投稿のタイミングとコンテンツをカスタマイズして、視聴者のエンゲージメントとリーチを最大化できます。
ということで、このシリーズのさらなる最新情報を楽しみにしていてください!
? 私の新しい本『Learning Vue』で Vue 3 と TypeScript について学びましょう!
? 私をサポートしませんか?コーヒーを買ってきてください。
この投稿が好きですか、それとも役に立ちますか?共有しますか?
以上がソーシャルメディア自動化の構築: サーバーレス機能を備えた LinkedIn 共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
