簡體   English   中英

如何設置Raspberry Pi來接收Webhook

[英]How to setup a Raspberry Pi to receive webhooks

我目前正在做一個小項目,每當在Shopify上創建新訂單時,我的樹莓派就會點亮一個獨角獸。 我以前從未使用過Webhooks或Web服務器,更不用說Flask或Zappa了,我很好奇如何在不將pi暴露到家庭網絡上的開放Internet的情況下進行設置。

我已經讀過,將Amazon的Lambda與Flask和稱為Zappa的東西一起使用將很容易做到,但是我很迷失。 這是我到目前為止的內容:

from time import sleep
from flask import Flask, request
import unicornhat as unicorn
import light.py

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

def index():
    data = request.get_json()
    if data['orders/create'] == null:
        light.light() //lights uHat on new order creation
    return "Success"

任何指針都將不勝感激,我已經花了好幾個星期(在業余時間里)敲打我的頭,而我對webdev的經驗不足。 我什至不確定我是否正確閱讀了Shopify的API信息,以至於它甚至都在監聽正確的Webhook。

再次感謝!

Shopify有一個Python模塊shopifyapi ,可讓您注冊Webhook

import shopify

shop_url = "https://%s:%s@%s.myshopify.com/admin" % (API_KEY, PASSWORD, SHOP_NAME)
shopify.ShopifyResource.set_site(shop_url)
shopify.Session.setup(api_key=API_KEY, secret=SHARED_SECRET)

new_webhook = shopify.Webhook()
new_webhook.address = 'http://your.pi.address'
new_webhook.topic = 'orders/create'
new_webhook.save()

完成后,所有創建的訂單都將調用網絡掛鈎,以將訂單數據發送到您的pi地址。 有關其他事件,您可以將其用作觸發器,請參閱API文檔

您的Flask應用可以接受這樣的信息:

from flask import Flask, request
import light

app = Flask(__name__)

@app.route('/', methods = ['POST'])
def index():
    data = request.json  # optional
    light.blink()
    return "Success"

if __name__ == '__main__':
    app.run()

對於您要完成的工作,您不需要對訂單數據做任何事情,但是檢查和/或記錄日志可能會很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM