見出し画像

公式LINEの一斉メッセージをDifyから送信する方法

こんにちは、よーすけです。

今回は、Difyを使って公式LINEから一斉送信する方法を解説します。

※Pythonを知らない人でもコピペで実装できるようになっています。


公式LINEアカウントを持っていない方は以下の記事を参考に作成してください


今回目指すもの

Difyのワークフローを用いて公式LINEからメッセージを送信します。
今回送信する内容としては、Wikipediaから情報を取得し、要点をまとめて送信する簡単な内容となっております。

イメージ

送信内容のイメージ

ワークフローの全体像

ワークフローの全貌

Difyでのワークフローの流れ

1. 入力された文字を元に WikipediaSearchを用いて検索

3. 1で取得した情報をLLMで要約

プロンプト

#命令文
#contextを100文字程度に要約してください。
必ず#制約条件を遵守し、要約を行なってください。

#制約条件
・見出しをつけてください
・トピックスを3つまとめてください

#context
コンテキスト

3. 2で要約された情報をLINE から送信

import requests
import json

def main(text):
    # チャネルアクセストークン
    access_token = 'YOUR_ACCESS_TOKEN'
    
    # ブロードキャストメッセージのURL
    url = 'https://api.line.me/v2/bot/message/broadcast'
    
    # HTTPヘッダー
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {access_token}'
    }
    
    # ブロードキャストメッセージのデータ
    data = {
        "messages": [
            {
                "type": "text",
                "text": f"{text}"
            }
        ]
    }
    
    # リクエストを送信
    response = requests.post(url, headers=headers, data=json.dumps(data))
    
    # レスポンスを確認
    return {
        "result":"ブロードキャストメッセージが送信されました。"
    }

サンプルのダウンロード

以下よりファイルをダウンロードしてください。

使い方

1. ADVANCED DEPENDENCIESにrequestsを追加してください

requestsの追加

2. アクセストークンの追加

「YOUR_ACCESS_TOKEN」部分にご自身の公式LINEチャンネルアクセストークンを入力してください。

チャンネルアクセストークンの追加

おまけ(メッセージを一度に2つ以上送信する方法)

コードブロック部分を以下のコードに差し替えてください。

import requests
import json

def main(text, text2):
    # チャネルアクセストークン
    access_token = 'YOUSR_ACCESS_TOKEN'
    
    # ブロードキャストメッセージのURL
    url = 'https://api.line.me/v2/bot/message/broadcast'
    
    # HTTPヘッダー
    headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {access_token}'
    }
    
    # ブロードキャストメッセージのデータ
    data = {
        "messages": [
            {
                "type": "text",
                "text": f"{text}"
            },
            {
                "type": "text",
                "text": f"{text2}"
            }
        ]
    }
    
    # リクエストを送信
    response = requests.post(url, headers=headers, data=json.dumps(data))
    
    # レスポンスを確認
    return {
        "result":"ブロードキャストメッセージが送信されました。"
    }

変化した部分は以下の2つです。

1つ目、引数の追加

### 変更前の状態
def main(text):

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
### 変更後の状態
def main(text, text2):

2つ目ブロードキャストメッセージのデータ部分に配列を追加

### 変更前の状態
# ブロードキャストメッセージのデータ
data = {
    "messages": [
       {
            "type": "text",
            "text": f"{text}"
        }
    ]
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

### 変更後に状態
# ブロードキャストメッセージのデータ
    data = {
        "messages": [
            {
                "type": "text",
                "text": f"{text}"
            },
            {
                "type": "text",
                "text": f"{text2}"
            }
        ]
    }

Defy側の設定も追加

以下の画像のように入力変数に「text2」を追加してください

入力変数の追加

これで一度にテキストメッセージを2つ送信することができます。
3つ以上にしたい場合は同様に変更を加えてください。

まとめ

今回はDifyを用いて、公式 LINE から一斉送信メッセージを送信する方法を解説しました。
今回は Wikipediaからの情報を要約して送信する内容でしたが送信内容はご自身の送信したい内容に変更していただければなと思います。
またMakeなどを使うと毎日決まった時間にメッセージを投稿できるなどの機能を追加することもできるので今後そういった記事を追加していく予定です
今後もDifyを中心にnoteを投稿していく予定なのでぜひフォローお願いいたします!

この記事が気に入ったらサポートをしてみませんか?