前置條件
您需要先在區塊鏈實例中安裝云服務集成, 并開通函數計算集成功能。
下載云服務集成示例代碼。
本地安裝Node.js v8 環境(>=8.17.0)。
安裝函數計算工具funcraft, funcraft介紹及安裝方式。
鏈上事件觸發釘釘通知
本示例為您展示如何利用阿里云區塊鏈云服務集成功能,將鏈上的事件推送至釘釘;當區塊鏈上發生事件時,您在釘釘群中能夠看到相應的通知。
事件流: Blockchain Node —> Cloud Service Intergration —> Function Compute —> Dingtalk
創建釘釘群,并添加自定義機器人。
進入釘釘群設置->智能群助手->添加機器,選擇“自定義”。
這里以簽名為例,安全設置選擇加簽。可以根據實際情況選擇其他方式,可以參考釘釘群機器人。
進入
event2dingtalk/fc
目錄,修改以下內容。按照注釋修改 index.js 中的配置參數,填入釘釘回調地址、推送簽名密鑰。
修改 template.yml 中的函數計算服務名稱和函數名稱,默認服務名為”octopus”,函數名為”Event2Dingtalk”。更多配置方式可以參考 funcraft文檔。
使用
fun deploy
將函數部署到函數計算。在控制臺創建云服務集成函數計算觸發器,更多可以參考配置函數計算觸發器:
配置觸發器的事件類型為 Contract。
根據幫助,填寫函數計算實例的相關信息,更多可以參考配置函數計算觸發器。
按照發起示例交易的步驟,在通道上發起示例交易。
當審批流創建、結束時,釘釘機器人會在群中發送消息。
鏈上事件觸發短信通知
進入目錄
blockchain2sms/fc
, 修改以下內容:按照注釋修改 index.js 中的配置參數,填入具有調用短信服務權限的Access Key和 Access Key Secret。
根據您短信服務的配置,修改短信簽名(SignName)、模版CODE(TemplateCode)和模版參數(TemplateParam)。
修改 template.yml 中的函數計算服務名稱和函數名稱,默認服務名為”octopus”,函數名為”BlockChain2SMS”。更多配置方式可以參考 funcraft文檔。
使用
fun deploy
將函數部署到函數計算。在控制臺創建云服務集成函數計算觸發器。
配置觸發器的事件類型為Contract。
根據幫助,填寫函數計算實例的相關信息,更多可以參考配置函數計算觸發器。
按照發起示例交易的步驟,在通道上發起示例交易。
當審批流滿足條件結束時,您會收到短信通知。我們也可以在短信服務控制臺看到如下發送記錄。
發起示例交易
進入
blockchain2sms
目錄,按照注釋修改 main.js 中的配置參數,填入REST API地址、Refresh Token、通道名和智能合約名稱。更多信息請參考文檔使用REST API。執行
npm install
安裝依賴包,通過node main.js
發起示例交易。
成功示例輸出
Data pushed to blockchain with transaction 701c7006f26aed8457273a00bbfcc8cea4d75eac958996e07837036ea7e2fdac
{ id: '701c7006f26aed8457273a00bbfcc8cea4d75eac958996e07837036ea7e2fdac',
status: '200',
events:
[ { type: 'Contract',
platform: 'Fabric',
instance_id: 'csi-e2ehmfqasth-bcw7tzao2dzeo',
network: '',
id: '',
name: 'event-create-task',
content: 'eyJuY...TAz' }
Data pushed to blockchain with transaction 60a06a189415db587b49cbf91b46467bce1ea16490b19f6dfc8d520aa31240bc
{ id: '60a06a189415db587b49cbf91b46467bce1ea16490b19f6dfc8d520aa31240bc',
status: '200',
events:
[ { type: 'Contract',
platform: 'Fabric',
instance_id: 'csi-e2ehmfqasth-bcw7tzao2dzeo',
network: '',
id: '',
name: 'event-task-finished',
content: 'eyJuY...p7In0=' } ],
data: 'eyJu...In0=' }
Data pushed to blockchain with transaction 7810e0496a1c91a16102736b00a6f26da0baa42874a907fff26bff1b7eb3bf27
{ id: '7810e0496a1c91a16102736b00a6f26da0baa42874a907fff26bff1b7eb3bf27',
status: '200',
events: [],
data: 'eyJu...nIn0=' }