💚

RubyでLINE公式アカウントのフォロワーにメッセージを送信する

2023/04/20に公開2

この記事は

RubyでLINE公式アカウントのフォロワーにメッセージを送信する際に使用したコードを抜粋した。
ここで使用したAPIではユーザーを個別に指定してメッセージを送信できる。

使用するAPI

POST https://api.line.me/v2/bot/message/push
以下は公式ドキュメント
https://developers.line.biz/ja/reference/messaging-api/#send-push-message

送信対象

LINE公式アカウントを友だち追加しているユーザーなど
詳しくはドキュメントを参照

前提

gem 'line-bot-api'

事前にLINEのユーザーIDを取得する。

メッセージを送信する

module LineNotifier
  module_function

  def client
    @client ||= Line::Bot::Client.new do |config|
      config.channel_id = 'メッセージチャンネルのID'
      config.channel_secret = 'メッセージチャネルのシークレット'
      config.channel_token = 'メッセージチャネルのtoken'
    end
  end

  def push(user:, message:)
    line_id = user.line_user_id # LINEのユーザーIDを使用する
    return if line_id.blank?

    client.push_message(line_id, message)
  end
end

使い方

LineNotifier.push(user: user, message: 'hello')

Discussion

sanpeisanpei

LineNotifier.push(user: user, message: 'hello')
のmessageですが。下記の様なtypeをもったハッシュでないと手元では動いていないです。どうでしょうか?
(手元で使っているline-bot-apiは1.2.1です)

message={
            type: 'text',
            text: "hello"
           }

参考にしたページ
https://qiita.com/wadayamada/items/0e90e413adff2023e741
https://github.com/line/line-bot-sdk-ruby/blob/master/README.md?plain=1#L75