APIの利用方法

API経由でのQRコードの生成方法を説明します。
手順としては、以下となります。
  1. APIトークンを取得する
  2. APIトークンを利用する
  3. 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();