コンテンツヘルパー
WiFiの認証情報、連絡先カード(vCard)、位置情報のQRコードには、特定のテキスト形式が使われます。これらのエンドポイントがペイロード文字列を組み立てるので、そのまま /api/qr/generate の content に渡せます。
3つのエンドポイントはいずれもJSONを受け取り、JSONを返します。レンダリングは行わず、文字列を組み立てるだけです。
WiFi
POST /api/qr/content/wifi
{
"ssid": "MyNetwork",
"password": "supersecret",
"encryption": "WPA",
"hidden": false
}
レスポンス:
{
"success": true,
"content": "WIFI:T:WPA;S:MyNetwork;P:supersecret;H:false;;"
}
encryption: WPA、WEP、または nopass。
vCard
POST /api/qr/content/vcard
{
"firstName": "Ada",
"lastName": "Lovelace",
"organization": "Analytical Engine Co.",
"title": "Programmer",
"phone": "+44 20 7946 0958",
"email": "ada@example.com",
"url": "https://adalovelace.example",
"address": "10 Downing St, London"
}
レスポンス: そのままエンコードできる、完全な形式のvCard 3.0文字列。
Geo
POST /api/qr/content/geo
{
"latitude": 40.4168,
"longitude": -3.7038,
"query": "Plaza Mayor, Madrid"
}
レスポンス:
{
"success": true,
"content": "geo:40.4168,-3.7038?q=Plaza%20Mayor%2C%20Madrid"
}
query は任意です。Google マップ / Apple マップで読み取れるラベルを追加します。
これらが存在する理由
文字列は自分で組み立てることもできますが、形式には例外的なケースがあります(WiFiパスワードのエスケープ、vCardの行の折り返し、GeoのURIエンコード)。ヘルパーがこれらを処理するので、入力ミスのせいで「MyNetwork P:supersecret」をSSIDとして開くQRをお客様に渡してしまうことはありません。
パターン
1. POST to /api/qr/content/{wifi|vcard|geo} → get the content string
2. POST that string as `content` to /api/qr/generate → get the QR
WiFi / vCard / GeoのQRをAIにスタイリングさせたい場合は、組み立てた文字列をそのままAIエンドポイントの content に渡すこともできます。