[Bitcoin] 거래 ID를 보낼 때 확인 수를 반환하는 LINE BOT

개요



スクリーンショット 2017-01-08 11.10.47.png

사용자가 보낸 트랜잭션 ID를 기반으로 bitFlyer chainFlyer API

코드



callback.rb
require 'sinatra'
require 'line/bot'
require 'json'
require 'open-uri'

def client
  @client ||= Line::Bot::Client.new { |config|
    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 { |event|
    case event
    when Line::Bot::Event::Message
      case event.type
      when Line::Bot::Event::MessageType::Text
        begin
          #ユーザーから送られてきたメッセージ
          events_message_text = JSON.parse(body)["events"][0]["message"]["text"]
          #送られてきたメッセージ=トランザクションIDをエンドポイントURLに結合し、トランザクションの情報を取得
          transaction_info = open("https://chainflyer.bitflyer.jp/v1/tx/"+events_message_text).read
          #確認数
          confirmed = JSON.parse(transaction_info)["confirmed"]
          message = {type:'text',text:confirmed}
        rescue
          #送られてきたメッセージがトランザクションIDでではない場合の処理
          message = {type:'text',text:"トランザクションが見つかりません"}
        end
        client.reply_message(event['replyToken'], message)
      end
    end
  }

  "OK"
end

좋은 웹페이지 즐겨찾기