![](/img/trans.png)
[英]How does raspberry pi receive trigger events from webhooks with IFTTT?
[英]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.