def save
@events.each do |event|
next unless text_message?(event)
line_id = event["source"]["userId"]
user = find_user_by_email(event.message["text"])
if user&.update(line_user_id: line_id)
send_success_message(event["replyToken"])
else
send_failure_message(event["replyToken"])
end
end
end
概要
LINE公式アカウントに送られるメールアドレスからLINE IDを保存する処理について、LINE IDが保存済みかどうか確認する処理を追加する
背景・目的
LINE公式アカウントにメールアドレスを送るユーザーは3パターン。
現状のコードは、送られたメールアドレスでユーザーを検索し、そのユーザーのline_user_idにLINE IDを登録する仕様。 1のパターンは、問題なし。 2のパターンも、何回line_user_idをupdateしても問題ない。 3のパターンのユーザーは、email検索でユーザー情報を取得できないため、「連携に失敗しました」というメッセージが流れてしまう。しかし実際は、既にline_user_idにLINE IDが入っている。このユーザーに対しては、「連携済みです」というメッセージを送る
内容
対応しないこと
補足