如何设置一个树莓派接收网络挂接

问题描述:

我目前工作的一个小项目,将有我的覆盆子丕亮每当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() 

为了什么,你要完成你不需要做任何事情的订单数据, 但它可能是不错的检查和/或日志。

+0

这是完美的,谢谢! – Tadhg