本文へスキップ

コンテンツヘルパー

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 に渡すこともできます。

コードサンプル