Skip to content

line/line-bot-sdk-ruby

Folders and files

NameName
Last commit message
Last commit date
Jan 23, 2025
Jan 21, 2025
Feb 25, 2025
Feb 28, 2025
Jan 21, 2025
Feb 13, 2025
Jan 21, 2025
Jan 21, 2025
Jan 21, 2025
Jan 21, 2025
Jan 21, 2025
Apr 16, 2016
Jan 21, 2025
Jun 10, 2024
Jan 23, 2018
Oct 10, 2018
Feb 26, 2025
Feb 27, 2025
Apr 16, 2016
Apr 2, 2024
Jan 21, 2025
Nov 15, 2024
Jan 21, 2025
Jan 21, 2025
Jun 14, 2024

Repository files navigation

LINE Messaging API SDK for Ruby

Gem-version

Introduction

The LINE Messaging API SDK for Ruby makes it easy to develop bots using LINE Messaging API, and you can create a sample bot within minutes.

Documentation

See the official API documentation for more information

Also, generated documentation by YARD is available.

Requirements

This library requires Ruby 3.1 or later.

Installation

Add this line to your application's Gemfile:

gem 'line-bot-api'

And then execute:

bundle

Or install it yourself as:

gem install line-bot-api

Synopsis

Usage:

# app.rb
require 'sinatra'
require 'line/bot'

def client
  @client ||= Line::Bot::Client.new { |config|
    config.channel_id = ENV["LINE_CHANNEL_ID"]
    config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
    config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
  }
end

post '/callback' do
  body = request.body.read

  signature = request.env['HTTP_X_LINE_SIGNATURE']
  unless client.validate_signature(body, signature)
    error 400 do 'Bad Request' end
  end

  events = client.parse_events_from(body)
  events.each do |event|
    case event
    when Line::Bot::Event::Message
      case event.type
      when Line::Bot::Event::MessageType::Text
        message = {
          type: 'text',
          text: event.message['text']
        }
        client.reply_message(event['replyToken'], message)
      when Line::Bot::Event::MessageType::Image, Line::Bot::Event::MessageType::Video
        response = client.get_message_content(event.message['id'])
        tf = Tempfile.open("content")
        tf.write(response.body)
      end
    end
  end

  # Don't forget to return a successful response
  "OK"
end

Help and media

FAQ: https://developers.line.biz/en/faq/

News: https://developers.line.biz/en/news/

Versioning

This project respects semantic versioning.

See https://semver.org/

Contributing

Please check CONTRIBUTING before making a contribution.

License

Copyright (C) 2016 LINE Corp.
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
 
   http://www.apache.org/licenses/LICENSE-2.0
 
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.