メインコンテンツまでスキップ

QRコード生成 LINE bot (Azure Functionsで実現)

Azure FunctionsでQRコード生成 LINE bot を作成したので紹介します。

QRコード生成 LINE bot 情報

【QRコード生成 LINE bot のQRコード】

image.png
@489imzgn

LINE bot 追加操作

QRコードで追加

bot id(@489imzgn) で追加

QRコード生成操作

URLからのQRコード生成

👇XのプロフィールURLからQRコードを生成します。

文字列からのQRコード生成

👇QRコードには任意の文字列を格納することもできます。

QRコード生成 Line bot 作成解説

このLine bot は下記記事の組み合わせで出来ています。

  1. QRコードの生成
    解説記事:PythonでQRコードを作成する
  2. QRコード生成ロジックをAzure Functions としてデプロイ
    解説記事:Azure Functions でPython関数を作成してデプロイする
  3. Azure Functions でLineメッセージを送受信する
    解説記事:Azure Functions でLineメッセージを送受信する
  4. 生成したQRコードをAzure Blob StorageへアップロードしてLineへ連携する
    解説記事:Azure Blob Storage CLI及びPython経由ファイルアップロード/ダウンロード操作手順
    解説記事:AzureストレージアカウントでWebコンテンツを公開する

コード(参考)

  • [requirements.txt]
azure-functions

urllib3==2.0.7
PyQRCode==1.2.1
pypng==0.20220715.0

azure-common==1.1.28
azure-core==1.29.5
azure-identity==1.15.0
azure-storage-blob==12.19.0
  • [qr_creator.py]
import io
import pyqrcode

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, ContentSettings

def create_qr_image_to_blob(target_text:str,blob_key_name:str):

account_url = "https://*******.blob.core.windows.net"
default_credential = DefaultAzureCredential()
container_name = "$web"

blob_service_client = BlobServiceClient(account_url, credential=default_credential)
container_client = blob_service_client.get_container_client(container=container_name)
blob_client = container_client.get_blob_client(blob_key_name)

code = pyqrcode.create(target_text, error='L', version=4, mode='binary')
with io.BytesIO() as virtual_file:
code.png(virtual_file, scale=5, module_color=[0, 0, 0, 128], background=[255, 255, 255])
content_setting = ContentSettings(content_type="image/png")
blob_client.upload_blob(virtual_file.getbuffer(),overwrite=True,content_settings=content_setting)
  • [line_message.py]
import json
import urllib.request
import qr_creator

from datetime import timezone,timedelta,datetime

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

ACCESS_TOKEN = "**********"

def send_message(user_id:str,message_text:str):
print("main_logic start")

url = "https://api.line.me/v2/bot/message/push"
method = "POST"
headers = {
'Authorization': "Bearer " + ACCESS_TOKEN,
'Content-Type': 'application/json'
}
messages = [
{
"type": "text",
"text": message_text
}
]
params = {
"to":user_id
,"messages": messages
}
request = urllib.request.Request(url, json.dumps(params).encode("utf-8"), method=method, headers=headers)
with urllib.request.urlopen(request) as res:
body = res.read()
print(body)

def send_image(user_id:str,image_url:str):

url = "https://api.line.me/v2/bot/message/push"
method = "POST"
headers = {
'Authorization': "Bearer " + ACCESS_TOKEN,
'Content-Type': 'application/json'
}
messages = [
{
"type": "image",
"originalContentUrl": image_url,
"previewImageUrl": image_url
}
]
params = {
"to":user_id
,"messages": messages
}
request = urllib.request.Request(url, json.dumps(params).encode("utf-8"), method=method, headers=headers)
with urllib.request.urlopen(request) as res:
body = res.read()
print(body)

👇関連記事

本記事へのリンク

496060323041378673.png

https://docs.saurus12.com/azure/line_bot_qr_creator

👇参考URL

[keywords]
Azure Functions QRコード Line bot

QRコード生成 LINE bot (Azure Functionsで実現)

更新日:2024年02月22日

ITとソフトウェアの人気オンラインコースHP Directplus -HP公式オンラインストア-