日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > 如何使用Python收聽Webhooks

如何使用Python收聽Webhooks

2020-07-23 15:43:29 | 來源:中培企業IT培訓網

Webhooks在運行應用程序之間,發生的大部分功能被稱為“魔術”表演。它們有時被稱為反向API,回調甚至通知。那么如何使用Python收聽Webhooks?Python在許多服務中都可以見到,例如SendGrid,Stripe,Slack和GitHub,都使用事件將Webhooks發送為其API的一部分。這使您的應用程序可以偵聽事件并在事件發生時執行操作。

本指南假定您在計算機上安裝了Python v3。您可以在官方下載頁面上找到有關安裝python的詳細信息 。根據您的設置, python 您要使用的命令可能是 python3。

您可以通過從終端運行以下命令來確認安裝的版本:

python --version

或者,如果顯示的版本低于3:

python3 --version

  什么是網絡掛鉤

Webhooks之所以稱為反向API,是有原因的。API會將請求發送到您的應用程序,而不是您的應用程序向API發送請求。雖然這個概念聽起來可能不同,但是我們使用Webhook的方式與API使用請求的方式相同。

在大多數Web框架中,都有路由的概念。路由允許應用程序在用戶訪問特定URL時以特定內容或數據進行響應。同樣的想法也適用于API。

當您向GitHub發送有關特定組織的詳細信息的請求時,例如 Bearer,路線是 /orgs/:org 哪里 :org 是組織的名稱。

接收Webhook時應用相同的概念。我們建立一條路由,告訴服務將數據發送到哪里,然后我們的應用程序就坐下來等待,直到對該路由發出請求。Webhook實現中存在一些一致性。

他們通常是 POST 要求。

他們接收JSON數據。

他們需要迅速做出反應。

某些API將要求您的應用程序在一定時間內做出響應,否則將重新發送該事件。例如, Slack API 希望在三秒鐘內返回響應。

  使用Flask接收Webhook

該 瓶框架 是一個輕量級的Python Web框架,把自己描述為“微”。這樣一來,您就可以使用所需的內容,然后隨著項目的增長添加更多的結構。

就我們的目的而言,這很好,因為我們只關心路由。確保已安裝Python,然后在終端中運行以下命令來安裝flask:

python -m pip install Flask

您可以在Flask文檔中找到完整的安裝和設置詳細信息 。

接下來,創建一個 .py 文件,例如 main.py 并添加以下內容:

from flask import Flask, request, Response

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])

def respond():

print(request.json);

return Response(status=200)

此代碼將Flask類以及request和Response對象導入。然后使用名稱實例化它 __name__ 在將其分配給 app 變量。該命名方案是Flask文檔中的約定。

接下來,我們使用 @app.route 裝飾者傾聽 POST 針對 /webhook 路徑。當對路由提出請求時,此裝飾器調用緊隨其后的函數。在這種情況下, respond 功能。

就本例而言,我們 print 將請求作為json發送,然后返回 Response 狀態代碼為200。此響應告訴發送者我們已收到該掛鉤。您應該能夠使用Flask的首選技術來運行服務器:

export FLASK_APP=main.py

python -m flask run

就是這樣!現在,我們有了一個應用程序,該應用程序使用python和flask監聽webhook。部署后, POST 向端點發出的請求將觸發 respond 功能。

例如:webhook. 這也是您將提供發送Webhook服務的URL。

  接收Django的Webhook

在Django中設置應用程序要比Flask自動化得多,但這也帶來了更精細的文件結構。作為更傳統的模型-視圖-控制器(MVC)框架,Django為您提供了該項目的主要部分。完整的安裝指南可在 官方的Django文檔頁面上找到,但也可以通過以下方式安裝 pip 使用以下命令:

python -m pip install Django

如果您是從頭開始建立專案,請使用 django-admin 實用程序來創建一個新項目。如果您已有要添加Webhooks的Django項目,請跳至下一步。

django-admin startproject example-project

這為新的Django項目奠定了基礎。導航到新創建的文件夾,您將看到類似于以下內容的結構:

example-project/

manage.py

example-project/

__init__.py

settings.py

urls.py

asgi.py

wsgi.py

我們可以通過運行來確認一切正常 python manage.py runserver。

Django的慣例是在此外部“項目”中設置“應用”。您可以避免這種情況,并通過運行來設置一個單應用程序項目 django-admin startproject example-project .尾隨句點(。)代替。對于本教程,我們將鏡像首選的方式,如前所示。

為此,我們將設置一個名為webhooks的“應用程序” 。

python manage.py startapp webhooks

這將創建一個名為webhooks的新目錄 。現在我們可以編寫一些代碼。

我們將專注于三個文件: webhooks/views.py, webhooks/urls.py (尚未創建),以及 example-site/urls.py。

開啟檔案 webhooks/views.py。在這里,我們將編寫處理路線的邏輯。

from django.http import HttpResponse

from django.views.decorators.http import require_POST

@require_POST

def example(request):

return HttpResponse('Hello, world. This is the webhook response.')

此代碼執行以下操作:

它導入 HttpResponse 用于發送響應的對象。

它導入一個特殊的裝飾器以限制請求方法。在Django中,路由默認情況下接受所有HTTP方法,并讓視圖管理它們響應的方法。

調用裝飾器,將其后的功能限制為僅 POST 方法。

定義一個函數,名為 example 將請求作為參數并返回響應。

這個 example 函數的名稱將鏈接到我們的 urls.py 盡快歸檔。它不需要與特定路徑對齊。

接下來,建立 webhooks/urls.py 如果尚不存在。這是我們在項目的此子應用程序內組織路線的地方。

from django.urls import path

from . import views

urlpatterns = [

path('example/', views.example)

]

在這里,我們導入 path 從 django.urls。它定義了各個路線,并將它們與視圖關聯。接下來,我們導入所有視圖。

最后, urlpatterns 被傳遞路徑列表。Django將此列表識別為與應用程序關聯的路由。

在這種情況下,我們定義了以 example/ 并與視圖關聯 views.example,這是我們函數的名稱 views.py。

完成此操作后,我們的應用程序可以運行,但是我們需要將其告知外部項目。打開 example-project/urls.py。它看起來應該與先前的文件相似,但是已經存在 admin 路線。像這樣添加新路徑:

urlpatterns = [

path('admin/', admin.site.urls),

path('webhooks/', include('webhooks.urls'))

]

如果您的服務器已停止,請使用 python manage.py runserver。

現在嘗試向發出POST請求 /example/(如果不同,請用您自己的主機和端口替換)。

這樣,我們就建立了一個Django項目,該項目監聽一個Webhook /webhooks/example。部署后,將此路徑附加到完整URL上,并將完整URL提供給發送Webhook的服務。

  在本地測試Webhooks

要在本地進行Webhooks的測試而不進行部署,我們需要打開從開發機器到外界的連接。

一種選擇是使用 ngrok。通過此服務,您可以提供對本地計算機上特定端口的外部訪問。這非常適合我們的需求。首先,請注冊并按照安裝和入門說明進行操作。

完成后,如果您使用的是MacOS,則應該可以運行 ./ngrok http 3000 在將3000替換為正在運行的Python應用程序的端口的終端中。例如,默認的Django站點通常在端口8000上運行。

一旦啟動并運行,ngrok將為您提供一個可用于測試Webhook的URL。在Bearer中,我們在通知設置中提供了“測試”按鈕。

配置完成后,您將開始在該URL接收webhook。開發和測試完成后,請不要忘記將其更改為最終部署的Webhook URL。

  您可以使用此信息做什么?

一旦配置了Webhook,則取決于您如何處理它收到的信息。您可以使用此信息對事件進行實時響應,使應用程序的功能翻轉,甚至可以將其用作將數據寫入數據庫的方式。您的Webhook可以具有無數種功能,具體取決于API提供程序發送的信息類型。

盡管我們在本文中構建了一個基本的實現,但是值得一提的是,許多服務都提供了驗證請求是否來自實際來源的方法。這可以通過限制訪問您的應用程序的URL或通過匹配密鑰來完成。例如,GitHub允許您設置將隨每個Webhook發送的秘密。

以上就是關于如何使用Python收聽Webhooks的全部內容介紹,想了解更多關于Python的信息,請繼續關注中培偉業。

標簽: Python 軟件研發
主站蜘蛛池模板: 中国熟女撒尿毛茸茸 | 蜜桃视频在线观看免费视频网站WWW | 国产日韓无码一区二区三区久久区 | 国产精品久久久福利 | 亚洲综合憿情五月丁香五月网 | 人人妻人人妻人人片色av | 揉着我的奶从后面进去视频 | 中文在线观看免费高清 | jiujiuai久久爱| 欧美人与动另类xxxx | 国产精品一区二区综合 | 国产精品人妻无码久久久郑州 | 欧美一级裸片 | 一女被两男吃奶玩乳尖 | 亚洲综合麻豆 | 99视频在线观看免费 | japanese50mature日本亂倫 | 很黄很污的网站在线观看 | 国产精品亚洲色婷婷99久久精品 | 免费又黄又爽又猛的毛片 | 国产普通话对白视频二区 | 免费国产小视频 | 黄色网址在线播放 | 天地人间在线观看免费高清 | 国产午夜亚洲精品午夜鲁丝片 | 国产成人61精品免费看片 | 99久久无码一区人妻A片孕妇 | a级片免费看 | 亚洲成人久久精品 | 欧美日本久久久 | 日本娇小挑战黑人巨大hd | 熟睡人妻被讨厌的公侵犯 | 欧美色妇边做边爱2020 | 成人影片免费观看 | 国产欧美精品一区二区三区介绍 | 9色porny自拍视频一区二区 | 黄色www在线观看 | 色av综合网 | 国产精华最好的产品入口 | 丰满熟妇XXXX性PPX人交 | 国产精品网站免费观看 |