API経由でのQRコードの生成方法を説明します。
手順としては、以下となります。
手順としては、以下となります。
- APIトークンを取得する
- APIトークンを利用する
- QRコードを生成する
1.APIトークンを取得する
以下のリンクにアクセスするとAPIトークンを取得できます。APIトークンの生成と確認
※上記URLにアクセスするにはログインが必要です。
2.APIトークンを利用する
例えば、phpのGuzzle HTTPライブラリを使用した場合のAPIトークンの利用方法は以下の2種類があります。
リクエストフォームのパラメータを利用する
リクエストフォームのapi_tokenパラメータへ、APIトークンを含められます。
<?php
$client=new Client();
$token='APIトークン';
$response = $client->request('POST', 'https://happy-qr.net/api/create', [
'headers' => [
'Accept' => 'application/json',
],
'form_params' => [
'api_token' => $token,
],
]);
Bearerトークンを利用する
リクエストのAuthorizationヘッダへBearerトークンとして、APIトークンを提供できます。
<?php
$client=new Client();
$token='APIトークン';
$response = $client->request('POST', 'https://happy-qr.net/api/create', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$token,
],
]);
3.QRコードを生成する
QRコード作成に利用できるパラメータは以下となります。
項目 | パラメータ | 値 | 必須 | 説明 |
---|---|---|---|---|
動的データ保存 | is_dynamic |
1 : はい 0 : いいえ |
○ | 画像、動画、文章からQRコードを生成したい場合は 1 を設定してください。 |
データタイプ | data_type |
text : 短文 url : URL textarea : 文章 image : 画像 video : 動画 |
○ | |
サイズ | size |
2 : 小さめ 4 : 普通 6 : 大きめ 8 : とても大きめ |
○ | |
エラー補正値 | ec |
h : 30%復元 q : 25%復元 m : 15%復元 l : 7%復元 |
○ | 補正値が高いほどQRコードが汚れている場合でも正確に情報を読み取ることができます。 アイコンを合成する場合は、あまり低い補正値にするとQRコードを読み取ることができません。 |
QRコードのスタイル | qr_style |
dot : ドット square : 四角 |
☓ | デフォルトは四角 |
保存ファイル形式 | qr_file |
png : png svg : svg eps : eps |
☓ | デフォルトはpng。svg,epsはphotoshopなどでで利用する際にご利用ください。拡大しても画像がボケたりしません。 ただし、アイコンを合成する場合は、pngしか利用できません。 |
QRコードの色 | qr_color | #000000 | ☓ | デフォルトは「#000000(黒)」 |
QRコードの背景色 | qr_bgcolor | #ffffff | ☓ | デフォルトは「#ffffff(白)」 |
アイコン | qr_icon |
no_use : 使わない icon : 「Happy QR」アイコン iwai : 「祝」アイコン tai : 「鯛」アイコン heart : 「ハート」アイコン upload : アップロードアイコン |
○ | |
アップロードアイコン | icon-image | 画像ファイル | ☓ | qr_iconで「upload」を設定した場合は必須。100mb以下の画像ファイルを指定する。 |
データ(URL、短文、文章) | data | 文字列 | ☓ | data_typeで「text, url, textarea」を設定した場合は必須。 |
データ(画像) | upload-image | 画像ファイル | ☓ | data_typeで「image」を設定した場合は必須。100mb以下の画像ファイルを指定する。 |
データ(動画) | upload-video | 動画ファイル | ☓ | data_typeで「video」を設定した場合は必須。100mb以下の動画ファイルを指定する。 |
例えば、「これはテストです。」という短文からQRコードを生成する場合は以下のようになります。
<?php
$client=new Client();
$token='APIトークン';
$response = $client->request('POST', 'https://happy-qr.net/api/create', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$token,
],
'form_params' => [
'is_dynamic' => 0,
'data_type'=>'text',
'qr_icon'=>'icon',
'size'=>4,
'ec'=>'h',
'data'=>'これはテストです。',
],
]);
echo $response->getBody();
例えば、image.pngという画像からQRコードを生成する場合は以下のようになります。
<?php
$client=new Client();
$token='APIトークン';
$response = $client->request('POST', 'https://happy-qr.net/api/create', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$token,
],
'multipart' => [
[
'name'=>'is_dynamic',
'contents'=>1,
],
[
'name'=>'data_type',
'contents'=>'image',
],
[
'name'=>'qr_icon',
'contents'=>'icon',
],
[
'name'=>'size',
'contents'=>4,
],
[
'name'=>'ec',
'contents'=>'h',
],
[
'name'=>'upload-image',
'contents' =>fopen('image.png', 'r'),
],
]
]);
echo $response->getBody();