繁体   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