1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 15

Google Chart APIが廃止されたらしいのでQR code APIを使ってみる

Posted at

はじめに

ひとこと

アクセスしていただきありがとうございます。
記事を執筆している2024/12/02現在は少し早い年末ということで、筆者用のシステムの大掃除をしていました。
すると、しばらく動かしていなかったQRコードを扱う機能がエラーを出力したため確認したところ、Google Chart APIがcode 404を返していました。
調べたところ、公式からの発表がないもののユーザの反応から推測するに、2024年の春ごろに廃止されていたようです。
そこで代替となりそうなQR Code APIを使ってみました。

目的

  • QR Code APIを理解して使えるようになる

検証済みの環境

  • QR code API v1

ご注意

  • この記事の情報は 2024/12/02現在 のものです

1.QR code APIとは

概要

おそらくドイツの企業(?)が運営しているQRコードに関するAPIです。
下記の通り、特殊な要件でもない限りは十分すぎる機能を備えながら、無料ログインやAPIキーなし(一部、制限はありますが)無制限で提供してくれています。
APIのドキュメントは英語ですが平易な表現が使われており、Google翻訳はしっかりと機能してくれましたので、おそらくどなたでも読めると思います。

できること

QRコードの生成

データやオプションをURLパラメータで指定する形式です。
QRコードの内容を指定するだけで生成してくれます。
それ以外にも画像の大きさやファイル形式など9つのオプションがあります。

QRコードの読み取り

読み取りたい画像のURLを指定するか、画像をPOSTすることで読み取ってくれます。
読み取った結果はJSON形式かXML形式で返してくれます。

使い方

上記の通り、APIドキュメントが分かりやすいため、ここでは最低限だけ紹介します。

QRコードの生成

https://api.qrserver.com/v1/create-qr-code/?data=qiita.com/ochx

QRコードの読み取り

http://api.qrserver.com/v1/read-qr-code/?fileurl=http%3A%2F%2Fapi.qrserver.com%2Fv1%2Fcreate-qr-code%2F%3Fdata%3Dqiita.com%2Fochx

(QRコードを生成し、それを読み取っています)

2.GASでのサンプルコード

QRコードを生成し、Googleドライブに保存するシンプルなサンプルコードです。

script.gas
function createQRCode() {
  const data = 'qiita.com/ochx'
  const url = `https://api.qrserver.com/v1/create-qr-code/?data=${data}`
  const blob = UrlFetchApp.fetch(url).getBlob()
  DriveApp.createFile(blob).setName('QRCode.png')
}

おわりに

最後までお読みいただきありがとうございます。
ざっと調べた限り、この素晴らしいAPIに関する日本語の情報は少なかったので記事にしてみました。
少しでも広まれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?