💚
RubyでLINE公式アカウントのフォロワーにメッセージを送信する
この記事は
RubyでLINE公式アカウントのフォロワーにメッセージを送信する際に使用したコードを抜粋した。
ここで使用したAPIではユーザーを個別に指定してメッセージを送信できる。
使用するAPI
POST https://api.line.me/v2/bot/message/push
以下は公式ドキュメント
送信対象
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
LineNotifier.push(user: user, message: 'hello')
のmessageですが。下記の様なtypeをもったハッシュでないと手元では動いていないです。どうでしょうか?
(手元で使っているline-bot-apiは1.2.1です)
参考にしたページ
仕様変わったんですかね
教えていただきありがとうございます!
config.channel_idですが、line-bot-api 1.29.1までは指定してもエラーになりませんが、1.3.0では、以下のエラーとなります。(1.29.1→1.3.0の変更点まで未確認ですが)
とりあえず、chnnel_idを指定しなくても、channel_secret, channel_tokenのみで送信は手元では成功しています。
line-bot-apiも2.0.0になって大きくAPIが変わったので(下記参照)。line-bot-api gemのv2対応が必要ですね。
Google Geminiにエラーで最初聞いて調べたら、「ード内の Line::Bot::Client にスペルミスがないか、今一度確認してください。」とか言われた.....
そうでしたか!!!大変参考になります😭