Streamr助你掌控本身的數據(1)——教你5分鐘上傳數據至Streamr

博客說明

全部刊發內容都可轉載可是須要註明出處。
javascript

教你5分鐘上傳數據至Streamr

本系列文檔主要介紹怎麼經過Streamr管理本身的DATA,整個系列包括三篇教程文檔,分別是:教你5分鐘上傳數據至Streamr三種整合數據至Streamr的典型場景教你在Streamr市場上發佈數據。全部文檔均參考Streamr blog。前兩篇主要偏向技術文檔,因此須要有必定的技術背景。第三篇不包含任何技術知識,大部分人均可以按照教程來完成相應的操做。html

簡介

本篇教程文檔主要介紹瞭如何上傳用戶自身的數據至Sreamr網絡。首先,你將使用UI創建一些Stream,而後使用Streamr Java客戶端庫上傳自定義數據至剛創建的Stream。除此以外,本篇文檔也將介紹如何經過其餘編程語言來調用Streamr提供的API接口,實現用戶上傳自定義數據至Streamr網絡。java

術語Streams和events介紹

如圖所示,Streamr上的數據(DATA)包括若干個Stream,所述Stream是由一系列有序的event(或者說標有時間戳的數據點)組成。其中,每一個event的負載都是JSON格式的對象(或者說是鍵值對的集合),下面以一些傳感器讀取的數據爲例說明event的負載形式:node

{
  "temperature": 65.4,
  "humidity": 82,
  "sensorID": "sauna"
}

建立Stream

  1. 登陸 Streamr官網,若是尚未Streamr帳戶的話,請先點擊Sign Up完成註冊;
  2. 主導航頁面點擊Streams
  3. 點擊Create Stream按鈕;
  4. 填寫Stream的名字和簡介,例如My test stream
  5. 填寫完成後點擊Next按鈕將出現以下界面;

圖中紅色圈出的是Stream ID,後續過程會用到,請牢記。git

獲取用戶API keys

用戶經過調用Streamr API接口向Streamr提交event時,須要獲取API keys來完成鑑權操做。具體步驟以下:github

  1. 點擊主導航頁面的Setting按鈕並選擇Profile選項;
  2. 找到API Keys選項;
  3. Key name輸入框中輸入密鑰名稱(好比Tutorial)並點擊+按鈕,而後點擊copy按鈕複製密鑰;

提交events至Streams

經過官方JavaScript client提交event

最簡單的調用API接口辦法是使用官方JavaScript client,該客戶端使用node.js編程語言編寫,其它語言的客戶端庫還在計劃中。用戶能夠經過瀏覽器在本地使用官方的JavaScript client,首先使用瀏覽器打開JS Bin,而後使用自身的Stream ID和API key替換頁面顯示代碼中的MY-STREAM-IDMY-API-KEY,最後點擊Run with JS按鈕,用戶的瀏覽器便會自動提交數據至Stream。
npm

具體地,在JS Bin頁面用戶將看到Sent successfully: …消息,而且在Stream頁面的Recent Events選項中將看到JS Bin實時上傳的events,具體以下圖所示:
編程

在node.js中使用streamr-client提交events

  • 首先安裝streamr-client;
npm install --save streamr-client
  • 建立node.js腳本並替換MY-STREAM-ID和MY-API-KEY;
const StreamrClient = require('streamr-client')
const STREAM_ID = 'MY-STREAM-ID'
const API_KEY = 'MY-API-KEY'
// Create the client and give the API key to use by default
const client = new StreamrClient({
    apiKey: API_KEY
})
// Here is the event we'll be sending
const msg = {
    hello: 'world',
    random: Math.random()
}
// Produce the event to the Stream
client.produceToStream(STREAM_ID, msg)
    .then(() => console.log('Sent successfully: ', msg))
    .catch((err) => console.error(err))
  • 執行上述node.js腳本,注意node.js版本至少爲8;

執行完上述操做後,在Stream頁面的Recent Events選項中能夠看到最新提交的event。canvas

使用HTTP library提交events

用戶可使用HTTP library來完成和Streamr API的交互。api

  • 首先用戶須要向包含有Stream ID的URL發送HTTP Post請求;
https://www.streamr.com/api/v1/streams/MY-STREAM-ID/data
  • Post請求的body部分包含用戶須要上傳的數據;
{
"hello": "world",
"number": 12345
}
  • 添加API keys至HTTP的header部分;
Authorization: token MY-API-KEY

用戶可使用Postman等工具完成上述過程,具體參加下圖:

使用curl命令行提交events

curl -i -X POST -H 「Authorization: token MY-API-KEY」 -d 「{\」hello\」:\」world\」}」 https://www.streamr.com/api/v1/streams/MY-STREAM-ID/data

參考文獻

  1. https://medium.com/streamrblog/how-to-connect-data-to-streamr-in-5-minutes-1-of-3-9363afd254e6
相關文章
相關標籤/搜索