2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Functions でLineメッセージを送受信する

Posted at

Azure Functions でLineメッセージを送受信する手順を解説します。

LINE Developersコンソールからチャネルを作成

下記手順を参考にLINE Developersコンソールからチャネルを作成します。
LINE Developersコンソールでチャネルを作成する

Azure Functions の作成

👇Azure Functions の作成及び関連設定は、以下記事参照下さい。
Azure Functions でPython関数を作成してデプロイする

👇HTTP trigger関数の作成

func new
  • select a templateHTTP triggerを選択します。
  • select a Auth LevelANONYMOUSを選択します。

👇下記のように、リクエスト内容をログ出力するようコードを記載します。

@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    req_body = json.loads(req.get_body())
    logging.info(req_body)

👇以下記事を参考に関数をデプロイします。
Azure Functions でPython関数を作成してデプロイする

HTTP エンドポイントの取得

👇HTTPエンドポイント

https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>

APP_NAME:line-bot-sampleFUNCTION_NAME:http_triggerの場合、HTTPエンドポイントは下記です。

https://line-bot-sample.azurewebsites.net/api/http_trigger

Webhookを設定する

下記手順を参考にWebhookを設定します。
Webhook URLを設定する

  • LINE Developersコンソールへログインし、Webhookへ設定します。
    image
    image

  • Webhookを有効化します。
    image

  • QRコードに表示されたQRコードを利用してAPIをお友達追加します。
    image.png

  • Lineからメッセージを送信し、関数ログに出力されることを確認します。
    ※ また、LineのユーザIDをここから取得します。

image.png

メッセージを送信する

メッセージ送信のため、チャンネルアクセストークンを取得

ユーザIDを指定してメッセージ送信

import json
import urllib.request

main_logic()

def main_logic():
    print("main_logic start")

    access_token = "xxxx_access_token_xxxxxxxxxx"
    
    url = "https://api.line.me/v2/bot/message/push"
    method = "POST"
    headers = {
        'Authorization': "Bearer " + access_token,
        'Content-Type': 'application/json'
    }
    messages = [
        {
            "type": "text",
            "text": "テストメッセージです!!"
        }
    ]
    params = {
        "to":"Uxxxxxsend_userid_XXXXXXXXXXXXXXXXXXX"
        ,"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)

👇関連記事

👇参考URL

[keywords]
Azure Functions Line bot

Azure Functions でLineメッセージを送受信する

更新日:2024年02月13日

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?