適切な方法を選ぶ
Base44 には、ほかのサービスに接続する方法がいくつかあります。独自のログインフローの構築は最も手間がかかります。まずは、より簡単な方法でサービスに対応できるかを確認してください。 サービスに合った方法を選びます:- サービスがコネクタカタログにある場合: コネクタ を使います。ログイン、トークンの保存と更新は Base44 が行います。アプリユーザーコネクタ を使うと、各ユーザーが自分のアカウントを接続できます。カタログのコネクタで 独自の OAuth クライアント を求められる場合も、それはコネクタなので、このページは必要ありません。
- サービスから API キーが発行される場合: キーを シークレット として保存し、バックエンド関数からサービスを呼び出すよう AI チャットに依頼します。ワークスペース全体で 1 つの API を共有するには、カスタム OpenAPI インテグレーション を使います。
- サービスに OAuth2 ログインが必要で、コネクタがない場合: このページで説明するように、バックエンド関数でフローを構築します。
カスタム OpenAPI インテグレーションと MCP 接続では、各ユーザー自身のアカウントを接続できません。カスタム OpenAPI インテグレーションは、誰がアプリを使っていても、すべての呼び出しで同じログイン情報を送信します。追加した MCP 接続は、構築中の AI チャット専用で、公開したアプリでは使えません。
しくみ
Base44 は、カタログにないサービスのトークンを保存も更新もしません。そのため、アプリが独自のバックエンド関数でその処理を行います。これらの関数は AI チャットが作成します。 独自のログインフローは 4 つの部分で構成されます:- 接続ボタン: バックエンド関数が、ユーザーをサービスのログインページに送ります。その際、リクエストをそのユーザーに結び付ける 1 回限りのコードを付けます。
- コールバック関数: ユーザーがアクセスを承認すると、サービスはユーザーをアプリのバックエンド関数に戻します。この関数は 1 回限りのコードを確認し、サービスからの応答をそのユーザーのトークンに交換します。
- トークンテーブル: トークンはデータテーブルに、1 人につき 1 レコードで保存されます。読み取るのはバックエンド関数だけで、アプリのページが読み取ることはありません。
- API 関数: バックエンド関数がそのユーザーのトークンでサービスを呼び出します。トークンの期限が切れたら、リフレッシュトークンで新しいトークンを取得します。
OAuth アプリを登録する
アプリでログインを処理する前に、アプリをサービスに登録します。サービスからクライアント ID とクライアントシークレットが発行され、ログイン後にユーザーを戻す先を求められます。そのアドレスが、コールバック関数の公開 URL です。 各バックエンド関数には、次の形式の公開 URL があります。https://your-domain.com/functions/yourFunctionName。サービスが複数のリダイレクト URI を受け付ける場合は、両方のアドレスを追加します。enedisCallback のように、コールバック関数の名前をここで決めておきます。後で AI チャットに同じ名前を伝えるためです。
アプリをサービスに登録するには:
- サービスの開発者ポータルにログインし、OAuth アプリを作成します。サービスによっては、クライアントやアプリケーションと呼ばれます。
- リダイレクト URI としてコールバック関数の URL を入力します。例:
https://your-app-name.base44.app/functions/enedisCallback。 - アプリに必要なスコープだけを選択します。
- クライアント ID とクライアントシークレットをコピーします。
- サービスの開発者向けドキュメントから、認可 URL とトークン URL をコピーします。
ログインフローを構築する
関数、トークンテーブル、ユーザーがクリックするボタンは AI チャットが作成します。サービスの開発者向けドキュメントにある詳細を AI チャットに伝えてください。AI チャットは非公開のサービスのログイン設定を自分で調べられません。 ログインフローを構築するには:- アプリエディターに移動します。
-
サービスの URL、スコープ、登録したコールバック関数の名前を伝えて、フローの構築を AI チャットに依頼します。例:
- AI チャットからクライアント ID とクライアントシークレットを求められたら、表示されるフォームに入力します。
- コールバック関数の名前が、登録した名前と完全に一致していることを確認します。一致しない場合は、名前の変更を AI チャットに依頼します。
- ダッシュボード をクリックします。
- Data をクリックし、トークンテーブルを選択します。
- テーブル上部の 権限 をクリックし、レコードの作成、読み取り、更新、削除ができるのが管理者だけであることを確認します。詳しくは データの権限を変更する を参照してください。
- Test permissions in preview をクリックし、一般ユーザーとして操作して、トークンテーブルのレコードが表示されないことを確認します。
公開してテストする
サービスは常にユーザーを公開済みのアプリに戻します。そのため、コールバックでは、最後に公開したバージョンの関数が、その時点のシークレットで実行されます。テストの前にアプリを公開し、関数やシークレットを変更するたびに再度公開してください。 接続をテストするには:- アプリエディターに移動します。
- アプリを公開します。
- 公開済みのアプリを開いてログインします。
- AI チャットが追加した接続ボタンをクリックします。
- 使用が許可されているアカウントでサービスにログインし、アクセスを承認します。
ユーザーが接続する方法
アプリにログインする各ユーザーが、自分のアカウントを接続します。接続ボタンをクリックし、サービス自身のページでログインしてアクセスを承認します。アプリがそのサービスのパスワードを見ることはありません。トークンはアプリのトークンテーブルに保存され、使用するのはバックエンド関数だけです。ただし、あなたやアプリのほかの編集者はダッシュボードでそのテーブルを表示できます。ほかの非公開データと同じように扱ってください。 ユーザーには、本人が所有するか使用を許可されたアカウントだけを接続してもらい、アプリに必要なアクセスだけを要求してください。どのデータを読み取り、それをどう使うかを、アプリ内でユーザーに伝えます。特に個人や世帯のデータを共有するサービスには、同意に関する独自のルールがある場合があります。公開する前に、サービスの利用規約を確認してください。トラブルシューティング
ログインフローが動作しない場合は、以下から該当する状況を探してください。サービスでリダイレクト URI が一致しないと表示される
サービスでリダイレクト URI が一致しないと表示される
サービスに登録したコールバック URL は、関数の URL と完全に一致している必要があります。アプリが動作しているのと同じドメインを使っていること、関数名が Code の
base44/functions にあるフォルダ名と大文字・小文字も含めて一致していることを確認してください。アプリに戻っても、アカウントが接続されていない
アプリに戻っても、アカウントが接続されていない
アプリを公開してから、公開済みのアプリでもう一度試してください。それでも失敗する場合は、Code でコールバック関数のファイルを開き、Logs をクリックして、エラーを AI チャットに貼り付けます。AI チャットが関数を修正します。
ユーザーが頻繁に再接続しなければならない
ユーザーが頻繁に再接続しなければならない
アクセストークンの期限が切れ、更新されていない可能性があります。リフレッシュトークンで更新するよう AI チャットに依頼してください。サービスによっては、特定のスコープや設定を要求した場合にのみリフレッシュトークンを送信します。サービスのドキュメントを確認してください。
このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。