FlutterFlow
FlutterFlowはユーザーが手にするアプリケーションにコンパイルされるため、どのフィールドを埋めるかではなく、キーがどこに配置されるかが問題になります。以下のリクエストは、呼び出しが作成するのとまったく同じ形式で本番環境に送信されます。FlutterFlowの手順は、2026-09-17時点のFlutterFlowドキュメントに基づいて記述されています。
まず、自動化キーセクションで説明されているように、chartスコープでキーを作成してください。
1. 呼び出しを作成する
Section titled “1. 呼び出しを作成する”API Callsを開き、+ Addをクリックし、Create API Callを選択して、以下を入力してください。
-
API Call Name:
Natal chart。 -
Method Type:
POST。 -
URL:
https://api.astroway.info/v1/chart -
Headersタブ、+ Add Header:
X-Api-Key:とそれに続くあなたのキーを1行。2行目はContent-Type: application/json。 -
Variablesタブ: String型の変数5つ、
date、time、timezone、latitude、longitude。それぞれ以下のJSONからのデフォルト値を持つ。 -
Bodyタブ、JSONドロップダウンリスト: JSONを貼り付け、その中に変数をドラッグしてください。
{ "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": "50.45", "longitude": "30.52"}緯度と経度は意図的に文字列のままにしています。APIは"50.45"を数値として受け入れますが、文字列の方が変数のドラッグが簡単になります。
Add Callをクリックし、Response & Testを開き、Test API Callをクリックして、Test Responseで応答を確認してください。data.input.timezoneOffsetは4として返されます。これは、その日付にキエフが持っていたオフセットです。
2. 呼び出しをプライベートにする
Section titled “2. 呼び出しをプライベートにする”呼び出しのAdvanced SettingsでMake Privateを有効にし、Saveをクリックし、次にDeploy APIsをクリックしてください。これで呼び出しはFirebase Cloud Functionで実行されるため、プロジェクトには接続されたFirebaseとCloud Functionsを含むFirebaseプランが必要です。
FlutterFlowのドキュメントが明示的に述べていることがさらに2つあります。フロントエンドから、例えばリモート設定を介して渡されたキーは、プライベート呼び出しであっても公開されたままになります。安全な形式は、呼び出し自体に書き込まれたヘッダーです。
3. 応答を読み取る
Section titled “3. 応答を読み取る”JSON Pathsで**+ Add JSON Path**をクリックし、それぞれに名前を付けてください。
| 名前 | JSON Path |
|---|---|
ascendant | $.data.houses.ascendant |
sunLongitude | $.data.planets[0].longitude |
moonLongitude | $.data.planets[1].longitude |
offsetUsed | $.data.input.timezoneOffset |
サインは、経度を30で割って切り捨てたもので、12の名称リストのインデックスとして使用されます。例えば、アセンダント159.26は5、つまり乙女座になります。4行のカスタム関数、または12行のリストとインデックスで十分です。
Webビルドはブラウザから私たちにアクセスできません
Section titled “Webビルドはブラウザから私たちにアクセスできません”2026-09-17にサードパーティドメインのページから測定された結果: POST /v1/chartはaccess-control-allow-originヘッダーなしでプリフライトに応答し、Chromeはリクエストをブロックします。外部ドメインのブラウザには、/v1/public/*と/v1/embed/*のみが応答します。
FlutterFlowは、ビルダー、Runモード、Testモードで独自のプロキシを介して呼び出しを実行するため、そこで機能する呼び出しでも、Webアプリケーションの公開後に失敗する可能性があります。2つの解決策があり、最初のものを推奨します。
- 上記のように、呼び出しをプライベートにしてください。そうすれば、ブラウザではなくCloud Functionで実行され、キーの問題とCORSの問題の両方がすぐに解決されます。
- すでに独自のバックエンドがある場合は、私たちの前に独自のバックエンドを配置してください。FlutterFlowでのプロキシ設定は、独自のプロキシURLとともに、ビルダー、Runモード、Testモード向けに文書化されています。公開されたWebビルドについてはドキュメントに何も記載されていないため、そこでそれらに依存すべきではありません。
公開キーpk_はこれを解決しません。それは/v1/public/*と/v1/embed/*のみを取得し、iOSおよびAndroidビルドからはWebオリジンを送信しないため完全に拒否されます。
- プライベート呼び出しでの**
401**: キーが呼び出しではなくグループに配置されています。 detailsにtimezoneを含む**400 INVALID_FIELD**: ゾーンが空であるか、ESTのような略語であるか、ゾーン名ではありません。detailsにdateまたはtimeを含む**400**: フォーマットがYYYY-MM-DD/HH:MM:SSではありません。403 ENDPOINT_NOT_IN_SCOPE: キーのスコープにchartがありません。429 KEY_BUDGET_EXHAUSTED: キーが自身の予算を使い果たしました。ダッシュボードで引き上げてください。