メインコンテンツへスキップ
開発者向けドキュメントを表示しています
このドキュメントは、Base44 開発者プラットフォームで作業する開発者向けです。アプリエディタ内のコネクターについては、 コネクターの使用を参照してください。
アプリユーザーコネクターを使用すると、サインインした各アプリユーザーが自分のサードパーティアカウントを接続できます。各アプリユーザーが自分の OAuth トークンを取得します。Gmail アカウントからのメール送信、個人 LinkedIn への投稿、自分の Google カレンダーイベントの読み取りなど、個別のアプリユーザーとして実行する必要があるアクションに使用します。 すべてのアプリユーザーで 1 つのアカウントが共有される共有コネクターとは異なり、アプリユーザーコネクターはユーザーごとに別個の OAuth トークンを保存します。OAuth フローは登録された OAuth アプリケーション下で実行されるため、アプリユーザーはプロバイダーの同意画面でアプリの名前を見ます。
アプリユーザーコネクターには Builder プラン以上が必要です。

セットアップ

アプリユーザーがアカウントを接続する前に、ワークスペースに OAuth アプリ認証情報を登録してください。これにはワークスペース管理者アクセスが必要です。外部サービスからのクライアント ID とクライアントシークレットも必要です。 ワークスペース設定からコネクターを登録します。段階的な手順については、アプリユーザー用のコネクターのセットアップを参照してください。 コネクターを登録した後、ワークスペースは ID を割り当てます。その ID を使用して、フロントエンドコードでアプリユーザーを接続および切断し、バックエンド関数でトークンを取得します。

フロントエンドで接続と切断

フロントエンドコードで base44.connectors を使用して、各アプリユーザーの OAuth フローを開始および終了します。 アプリユーザーを接続するには、コネクター ID で connectAppUser を呼び出します。リダイレクト URL を返します。OAuth フローを開始するには、アプリユーザーをその URL に移動させてください。
const redirectUrl = await base44.connectors.connectAppUser("YOUR_CONNECTOR_ID");
window.location.href = redirectUrl;
アプリユーザーがフローを完了すると、そのトークンが保存され、バックエンド関数がそれを取得できます。
アプリユーザーを切断するには、コネクター ID で disconnectAppUser を呼び出します。現在サインインしているアプリユーザーの保存されたトークンを削除します。
await base44.connectors.disconnectAppUser("YOUR_CONNECTOR_ID");

バックエンド関数でトークンを取得

バックエンド関数で SDK クライアントを作成するには createClientFromRequest() を使用してください。受信リクエストからアプリユーザーの ID を自動的に読み取るため、SDK はどのユーザーのトークンを返すかを知っています。 その後、現在のリクエストを行ったアプリユーザーのトークンを取得するには、コネクター ID で getCurrentAppUserConnection() を呼び出します。
import { createClientFromRequest } from "@base44/sdk";

export default async function handler(req: Request) {
  const base44 = createClientFromRequest(req);

  const { accessToken } =
    await base44.asServiceRole.connectors.getCurrentAppUserConnection(
      "YOUR_CONNECTOR_ID",
    );

  const response = await fetch(
    "https://www.googleapis.com/calendar/v3/calendars/primary/events",
    {
      headers: { Authorization: `Bearer ${accessToken}` },
    },
  );

  const events = await response.json();
  return Response.json(events);
}

関連項目

このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。