Webhook是什么?


1.學習背景

最近因為想實時使用branch歸因投放的渠道數據,對客群進行實時分類,所以之前export daily data的T-2的數據不再滿足業務的需求。

 

 

 原具體方案

webhook概述

webhook 究竟是什么呢?  

Webhook是一個API概念,webhoo是一種web回調或者http的push API.Webhook作為一個輕量的事件處理應用,正變得越來越有用。

具體的說,webhook 是應用給其它應用提供實時信息的一種方式。信息一產生,Webhook在數據產生時立即發送數據和把它發送給已經注冊的應用這就意味着你能實時得到數據。

不像傳統的 APIs 方式,你需要用輪詢的方式來獲得盡可能實時的數據。這一點使得 webhook 不管是在發送端還是接收端都非常高效。

由於大部分服務提供商對 API 的訪問有一定限制,所以要么采用 webhook 方式,要么采用傳統的輪詢方式,不過這樣客戶端數據會有一些(或者比較多的)滯后。

這無論是對生產還是對消費者都是高效的,唯一的缺點是初始建立困難。

Webhook有時也被稱為反向API,因為他提供了API規則,你需要設計要使用的API。Webhook將向你的應用發起http請求,典型的是post請求,應用程序由請求驅動。

項目A需要實時獲取到項目B的最新數據:

傳統做法:項目A需要不停輪詢去拉取項目B的最新數據

webhook機制:項目A提供一個webhook url,每次項目B創建新數據時,便會向項目A的hook地址進行請求,項目A收到項目B的請求,然后對數據進行處理

 

 

2.使用webhook

消費一個webhook是為webhook准備一個URL,用於webhook發送請求。這些通常由后台頁面和或者API完成。這就意味你的應用要設置一個通過公網可以訪問的URL。

多數webhook以兩種數據格式發布數據:JSON或者XML,這需要解釋。另一種數據格式是application/x-www-form-urlencoded or multipart/form-data。這兩種方式都很容易解析,並且多數的Web應用架構都可以做這部分工作。

實際案例branch

1.Go to RequestBin and click + Create a RequestBin:

Branch’s new webhook system for People-Based Attribution allows you to export install and down-funnel event data as it occurs.
You can import this data into your internal systems for analysis. You simply need to specify a URL for the POST or GET requests.

 

配置方法

As you fill out the configuration, you'll see the following options:

  • Send a webhook to: Enter the URL where you would like the events to be sent. This URL can be written with Freemarker syntax to dynamically populate parameters and execute simple, logical expressions. There is more information on Freemarker support below.
  • using a GET/POST: Events can be sent either via POST or GET. POST events will be created with a default POST body. There is more information on POST bodies below.
  • users trigger event: When the selected event occurs, a webhook will fire:

 

 

2.Copy the Bin URL AND Paste this into the URL field of your Branch webhook's configuration screen:

 

 3.Now whenever your webhook is triggered, you will see a full report on RequestBin:

我么可以看到客戶每次下載觸發這個事件,都會在我們這個請求中看到相應的數據。

 

 

Webhook調試

調試webhook有時很復雜,因為webhook原則來說是異步的。你首先要解發他,然后等待,接着檢查是否有響應。這是枯燥並且相當低效。幸運的是還有其他方法:

1、明白webhook能提供什么,使用如RequestBin之類的工具收集webhook的請求;

2、用cURL或者Postman來模擬請求;

3、用ngrok這樣的工具測試你的代碼;

4、用Runscope工具來查看整個流程。

webhook安全

因為webhook發送數據到應用上公開的URL,這就給其他人找到這個URL並且發送錯誤數據的機會。你可采用技術手段,防止這樣的事情發生。最簡單的方法是采用https(TLS connection)。除了使用https外,還可以采用以下的方法進一步提高安全性:

1、首先增加Token,這個大多數webhook都支持;

2、增加認證;

3、數據簽名。

重要的問題

當作為webhook的消費者時有兩件事需要銘記於心:

1、webhook通過請求發送數據到你的應用后,就不再關注這些數據。也就是說如果你的應用存在問題,數據會丟失。許多webhook會處理回應,如果程序出現錯誤會重傳數據。如果你的應用處理這個請求並且依然返回一個錯誤,你的應用就會收到重復數據。

2、webhook會發出大量的請求,這樣會造成你的應用阻塞。確保你的應用能處理這些請求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM