国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Ruby 比特幣開發教程: 機器人接受比特幣并立即退還用戶

Rango / 847人閱讀

摘要:在上一篇教程中我們創建了自動回復消息的機器人當用戶發送消息時,機器人會自動回復同一條消息按本篇教程后學習后完成后,你的機器人將會接受用戶發送過來的加密貨幣,然后立即轉回用戶。

在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息"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

相關文章

  • 基于Mixin Network的PHP比特開發教程: 器人接受比特立即退還用戶

    摘要:如果機器人收到幣,大于零如果機器人支付幣給用戶,接收到的消息是一樣的,唯一不同的是是一個負數最后一步,調用將幣還給用戶完整的代碼在這兒 showImg(https://segmentfault.com/img/remote/1460000018419614?w=1200&h=659); 在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息Hello,World!時,機器人...

    import. 評論0 收藏0
  • 基于Mixin Network的PHP比特開發教程: 器人接受比特立即退還用戶

    摘要:如果機器人收到幣,大于零如果機器人支付幣給用戶,接收到的消息是一樣的,唯一不同的是是一個負數最后一步,調用將幣還給用戶完整的代碼在這兒 showImg(https://segmentfault.com/img/remote/1460000018419614?w=1200&h=659); 在 上一篇教程中, 我們創建了自動回復消息的機器人,當用戶發送消息Hello,World!時,機器人...

    winterdawn 評論0 收藏0
  • Ruby 比特開發教程匯總

    摘要:是一個免費的極速的端對端加密數字貨幣交易系統官方資源匯總課程簡介創建一個機器人比特幣開發教程機器人接受比特幣并立即退還用戶比特幣開發教程創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言匯總比特幣開發教程 showImg(https://segmentfault.com/img/remote/1460000019234638?w=1200&h=659...

    wangym 評論0 收藏0
  • php 比特教程大更新,包括交易和閃兌

    摘要:課程簡介創建一個機器人機器人接受比特幣并立即退還用戶創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言比特幣開發教程如下比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程 showImg(https://segmentfault.com/img/bVboFQ6?w=1200&h=659); 課程簡介 PHP 創建一...

    avwu 評論0 收藏0
  • php 比特教程大更新,包括交易和閃兌

    摘要:課程簡介創建一個機器人機器人接受比特幣并立即退還用戶創建比特幣錢包買賣實時兌換買賣在自由市場掛單買賣買賣任意在自由市場掛單買賣其他編程語言比特幣開發教程如下比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程比特幣開發教程 showImg(https://segmentfault.com/img/bVboFQ6?w=1200&h=659); 課程簡介 PHP 創建一...

    andot 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<