新しい記事やブログ投稿を公開した後、ソーシャルメディアでそれを宣伝する必要が生じます。投稿を手動で共有すると時間がかかり、非効率的になる可能性があります。この記事では、JavaScript API クライアントと Netlify サーバーレス関数を使用して、LinkedIn で記事の URL を共有するサーバーレス関数を構築する方法を検討します。これは、ソーシャル メディア プロモーションのための自動ワークフロー構築の一部です。
このチュートリアルを進めるには、次のものが必要です:
LinkedIn API の使用を開始するには、次の手順を実行する必要があります:
完了すると、ポータルはアプリのダッシュボードにリダイレクトされ、アプリに必要な権限と API 製品の構成を開始できます。
アプリのダッシュボードで、製品 タブをクリックし、OpenID Connect 製品を使用して LinkedIn で共有および LinkedIn でサインインへのアクセスをリクエストします。
これらの権限が付与されると、OAuth 2.0 トークン生成ツールにアクセスして、アプリのアクセス トークンを生成できます。トークンには次のスコープが含まれている必要があります: ユーザーに代わって投稿するための w_member_social、ユーザー認証とプロフィール情報のための profile と openid。
このアクセス トークンは 3-legged OAuth トークンであり、ユーザーがアプリケーションがユーザーの代わりに動作することを明示的に承認していることを保証します。トークンを生成した後、それを使用して認証を行い、LinkedIn API へのリクエストを安全に行うことができます。さらに、アプリのダッシュボードの 認証 タブで、アプリに付与された権限とスコープを確認できます。
すごいですね!アクセス トークンとアプリのセットアップが完了したので、ユーザー (この場合は私たち) に代わって LinkedIn に投稿する自動化の構築を開始できます。
プログラムで投稿の共有を開始するには、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 (ユーザーの 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} の形式に従います。さらに、以下を指定します:
更新された実装は次のとおりです:
npm install linkedin-api-js-client # or with yarn yarn add linkedin-api-js-client
次に、エンティティ オブジェクトの specificContent フィールド内で共有コンテンツを定義します。このシナリオでは、 specificContent フィールドには、次のプロパティを持つ com.linkedin.ugc.ShareContent オブジェクトが含まれます:
以下は更新されたコードです:
// 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 を使用してこの機能をサーバーレス エンドポイントとして公開し、ソーシャル メディアで記事を共有するプロセスの完全自動化に近づけます。
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 呼び出しの非同期の性質を処理します。
次に、次のアクションを実行するためにサーバーレス関数を更新します。
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 にデプロイするには、次のコマンドを実行します:
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 サイトの他の関連記事を参照してください。