2017-04-25 83 views
0

我目前工作的一個小項目,將有我的覆盆子丕亮每當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。

再次感謝!

回答

1

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