如何设置一个树莓派接收网络挂接
问题描述:
我目前工作的一个小项目,将有我的覆盆子丕亮每当Shopify上创建一个新的秩序unicornhat。我从来没有使用过webhooks和web服务器,更不用说Flask或Zappa了,我很好奇我如何设置它而不将pi暴露在家庭网络上的开放式互联网上。如何设置一个树莓派接收网络挂接
我读了,这将是简单的与瓶和一些所谓的Zappa一起使用亚马逊的lambda做,但我宁愿丢失。这是我到目前为止有:
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,允许您注册网络挂接。
import shopify
shop_url = "https://%s:%[email protected]%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()
一旦完成创建将调用网络挂接发送order data你PI的地址的订单。 有关您可以用作触发器的其他事件,请参阅API docs。
你的瓶的应用可以接受这样的帖子:
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()
为了什么,你要完成你不需要做任何事情的订单数据, 但它可能是不错的检查和/或日志。
这是完美的,谢谢! – Tadhg