Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/line/line-bot-sdk-ruby

LINE Messaging API SDK for Ruby
https://github.com/line/line-bot-sdk-ruby

bot line ruby sdk

Last synced: 17 days ago
JSON representation

LINE Messaging API SDK for Ruby

Lists

README

        

# LINE Messaging API SDK for Ruby

[![Gem-version](https://img.shields.io/gem/v/line-bot-api.svg)](https://rubygems.org/gems/line-bot-api)

## 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

- English: https://developers.line.biz/en/docs/messaging-api/overview/
- Japanese: https://developers.line.biz/ja/docs/messaging-api/overview/

Also, generated documentation by YARD is available.

- https://rubydoc.info/gems/line-bot-api

## Requirements
This library requires Ruby 3.1 or later.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'line-bot-api'
```

And then execute:

```sh
bundle
```

Or install it yourself as:

```sh
gem install line-bot-api
```

## Synopsis

Usage:

```ruby
# 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](CONTRIBUTING.md) 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.
```