摘要:在上一篇教程中我們創建了自動回復消息的機器人當用戶發送消息時,機器人會自動回復同一條消息按本篇教程后學習后完成后,你的機器人將會接受用戶發送過來的加密貨幣,然后立即轉回用戶。
在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息"Hello,World!"時,機器人會自動回復同一條消息!
按本篇教程后學習后完成后,你的機器人將會接受用戶發送過來的加密貨幣,然后立即轉回用戶。下面是全部源代碼,創建一個websocket_mixin_bot.rb試一下吧!
require "faye/websocket" require "eventmachine" require "json" require "zlib" require "mixin_bot" require "yaml" yaml_hash = YAML.load_file("./config.yml") MixinBot.client_id = yaml_hash["MIXIN_CLIENT_ID"] MixinBot.session_id = yaml_hash["MIXIN_SESSION_ID"] MixinBot.client_secret = yaml_hash["MIXIN_CLIENT_SECRET"] MixinBot.pin_token = yaml_hash["MIXIN_PIN_TOKEN"] MixinBot.private_key = yaml_hash["MIXIN_PRIVATE_KEY"] access_token = MixinBot.api.access_token("GET","/","") puts access_token authorization = format("Bearer %s", access_token) EM.run { ws = Faye::WebSocket::Client.new("wss://blaze.mixin.one/", ["Mixin-Blaze-1"], :headers => { "Authorization" => authorization } ) ws.on :open do |event| p [:open] ws.send(MixinBot.api.list_pending_message) end ws.on :message do |event| p [:message] data = event.data msg = MixinBot.api.read_message(data) jsmsg = JSON.parse msg p jsmsg # p jsmsg["data"] if jsmsg["action"] == "CREATE_MESSAGE" && jsmsg["data"] != nil msgid = jsmsg["data"]["message_id"] ws.send(MixinBot.api.acknowledge_message_receipt(msgid)) if jsmsg["data"]["category"] == "PLAIN_TEXT" conversation_id = jsmsg["data"]["conversation_id"] decoded_msg = Base64.decode64 jsmsg["data"]["data"] p decoded_msg if decoded_msg == "?" or decoded_msg == "h" or decoded_msg == "H" reply_msg = "?: help " + "1: Payment link for APP_CARD " + "2: Payment link for APP_BUTTON_GROUP " reply_msg = MixinBot.api.plain_text_message(conversation_id,reply_msg) ws.send(reply_msg) elsif (decoded_msg == "1") payLinkEOS = "https://mixin.one/pay?recipient=" + "a1ce2967-a534-417d-bf12-c86571e4eefa" + "&asset=" + "6cfe566e-4aad-470b-8c9a-2fd35b49c68d" + "&amount=0.001" + "&trace=" + SecureRandom.uuid + "&memo=" msgData = { "icon_url":"https://mixin.one/assets/98b586edb270556d1972112bd7985e9e.png", "title":"Pay 0.001 EOS", "description":"pay", "action":payLinkEOS } ws.send(MixinBot.api. app_card_message(conversation_id, msgData)) elsif decoded_msg == "2" payLinkEOS = "https://mixin.one/pay?recipient=" + "a1ce2967-a534-417d-bf12-c86571e4eefa" + "&asset=" + "6cfe566e-4aad-470b-8c9a-2fd35b49c68d" + "&amount=0.001" + "&trace=" + SecureRandom.uuid + "&memo=" payLinkEOS = "https://mixin.one/pay?recipient=" + MixinBot.client_id + "&asset=" + "6cfe566e-4aad-470b-8c9a-2fd35b49c68d" + "&amount=0.001" + "&trace=" + SecureRandom.uuid + "&memo=" payLinkBTC = "https://mixin.one/pay?recipient=" + MixinBot.client_id + "&asset=" + "c6d0c728-2624-429b-8e0d-d9d19b6592fa" + "&amount=0.0001" + "&trace=" + SecureRandom.uuid + "&memo=" button1 = { label: "Pay 0.001 EOS", color: "#FFABAB", action: payLinkEOS } button2 = { label: "Pay 0.0001 BTC", color: "#00EEFF", action: payLinkBTC } buttons = [button1,button2] ws.send(MixinBot.api. app_button_group_message(conversation_id, jsmsg["data"]["user_id"], buttons)) p "send app button group" else reply_msg = MixinBot.api.plain_text_message(conversation_id,decoded_msg) ws.send(reply_msg) end end if jsmsg["data"]["category"] == "SYSTEM_ACCOUNT_SNAPSHOT" jsdata = JSON.parse (Base64.decode64(jsmsg["data"]["data"])) p jsdata["amount"] if jsdata["amount"].to_f > 0 p "The Bot got coins:" + jsdata["amount"] transInfo = MixinBot.api.create_transfer(MixinBot.api.encrypt_pin(yaml_hash["MIXIN_PIN_CODE"]), { asset_id: jsdata["asset_id"], opponent_id: jsdata["opponent_id"], amount: jsdata["amount"], trace_id: SecureRandom.uuid, memo: "from ruby" }) p transInfo end end end end ws.on :error do |event| p [:error] end ws.on :close do |event| p [:close, event.code, event.reason] ws = nil end }你好,我的幣!
在工程目錄下,執行 ruby websocket_mixin_bot.rb
ruby websocket_mixin_bot.rb
wenewzha:mixin_labs-ruby-bot wenewzhang$ ruby websocket_mixin_bot.rb [:open] [:message] {"id"=>"1003b2b5-b8e4-4b54-bd03-983c61f64869", "action"=>"LIST_PENDING_MESSAGES"}
如果控制臺出現 "LIST_PENDING_MESSAGES"字樣, 連接到mixin.one成功了,正在偵聽用戶發送消息給它!
按幫助來操作,發送消息得到相應的支付提示
1 機器人回復 APP_CARD 支付鏈接.
2 機器人回復 APP_BUTTON_GROUP 支付鏈接.
? or help : 顯示幫助
點擊上面的鏈接,將會彈出一個窗口,輸入你的密碼,將支付幣給機器人!
Mixin Messenger支持的消息類型
如下圖所示,用戶點擊支付鏈接,輸入密碼,支付0.01 EOS給機器人,機器人馬上返還給用戶!
親愛的開發者,你也可以從消息控制面板里,點擊轉帳,直接將幣轉給機器人!它還是一樣的立即返還!
if jsmsg["data"]["category"] == "SYSTEM_ACCOUNT_SNAPSHOT" jsdata = JSON.parse (Base64.decode64(jsmsg["data"]["data"])) p jsdata["amount"] if jsdata["amount"].to_f > 0 p "The Bot got coins:" + jsdata["amount"] transInfo = MixinBot.api.create_transfer(MixinBot.api.encrypt_pin(yaml_hash["MIXIN_PIN_CODE"]), { asset_id: jsdata["asset_id"], opponent_id: jsdata["opponent_id"], amount: jsdata["amount"], trace_id: SecureRandom.uuid, memo: "from ruby" }) p transInfo end end
如果機器人收到幣,
jsdata["amount"]
大于零;如果機器人支付幣給用戶,接收到的消息是一樣的,唯一不同的是
jsdata["amount"]
是一個負數.
transInfo = MixinBot.api.create_transfer(MixinBot.api.encrypt_pin(yaml_hash["MIXIN_PIN_CODE"]), { asset_id: jsdata["asset_id"], opponent_id: jsdata["opponent_id"], amount: jsdata["amount"], trace_id: SecureRandom.uuid, memo: "from ruby" }) p transInfo
最后一步,調用MixinSDK將幣還給用戶!
完整的代碼在這兒 here
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24674.html
摘要:如果機器人收到幣,大于零如果機器人支付幣給用戶,接收到的消息是一樣的,唯一不同的是是一個負數最后一步,調用將幣還給用戶完整的代碼在這兒 showImg(https://segmentfault.com/img/remote/1460000018419614?w=1200&h=659); 在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息Hello,World!時,機器人...
摘要:如果機器人收到幣,大于零如果機器人支付幣給用戶,接收到的消息是一樣的,唯一不同的是是一個負數最后一步,調用將幣還給用戶完整的代碼在這兒 showImg(https://segmentfault.com/img/remote/1460000018419614?w=1200&h=659); 在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息Hello,World!時,機器人...
摘要:是一個免費的極速的端對端加密數字貨幣交易系統官方資源匯總課程簡介創建一個機器人比特幣開發教程機器人接受比特幣并立即退還用戶比特幣開發教程創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言匯總比特幣開發教程 showImg(https://segmentfault.com/img/remote/1460000019234638?w=1200&h=659...
摘要:課程簡介創建一個機器人機器人接受比特幣并立即退還用戶創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言比特幣開發教程如下比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程 showImg(https://segmentfault.com/img/bVboFQ6?w=1200&h=659); 課程簡介 PHP 創建一...
摘要:課程簡介創建一個機器人機器人接受比特幣并立即退還用戶創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言比特幣開發教程如下比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程 showImg(https://segmentfault.com/img/bVboFQ6?w=1200&h=659); 課程簡介 PHP 創建一...
閱讀 1673·2021-11-15 11:38
閱讀 4514·2021-09-22 15:33
閱讀 2332·2021-08-30 09:46
閱讀 2176·2019-08-30 15:43
閱讀 827·2019-08-30 14:16
閱讀 2069·2019-08-30 13:09
閱讀 1255·2019-08-30 11:25
閱讀 701·2019-08-29 16:42