QRコード生成 LINE bot (Azure Functionsで実現)
Azure FunctionsでQRコード生成 LINE bot を作成したので紹介します。
QRコード生成 LINE bot 情報
【QRコード生成 LINE bot のQRコード】
@489imzgn
LINE bot 追加操作
QRコードで追加
bot id(@489imzgn) で追加
QRコード生成操作
URLからのQRコード生成
👇XのプロフィールURLからQRコードを生成します。
文字列からのQRコード生成
👇QRコードには任意の文字列を格納することもできます。
QRコード生成 Line bot 作成解説
このLine bot は下記記事の組み合わせで出来ています。
- QRコードの生成
解説記事:PythonでQRコードを作成する - QRコード生成ロジックをAzure Functions としてデプロイ
解説記事:Azure Functions でPython関数を作成してデプロイする - Azure Functions でLineメッセージを送受信する
解説記事:Azure Functions でLineメッセージを送受信する - 生成した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)
👇関連記事
- Azure Functions でPython関数を作成してデプロイする
- Azure Blob Storage CLI及びPython経由ファイルアップロード/ダウンロード操作手順
- AzureストレージアカウントでWebコンテンツを公開する
- Azure Functions でLineメッセージを送受信する
- PythonでQRコードを作成する
- 2024年2月(2023年分)ふるさと納税の確定申告手順(マイナンバーカード&e-tax利用)
本記事へのリンク
https://docs.saurus12.com/azure/line_bot_qr_creator
👇参考URL
[keywords]
Azure Functions QRコード Line bot
QRコード生成 LINE bot (Azure Functionsで実現)
更新日:2024年02月22日