2017-04-25 5 views
0

現在、Shopifyで新しいオーダーが作成されるたびに、自分のラズベリーパイがユニコーンを照らす小さなプロジェクトに取り組んでいます。私はウェブフックやWebサーバでは一度も扱っていません。以前はFlaskやZappaの方がずっと少なかったし、ホームネットワーク上のオープンインターネットにpiを公開することなく、これをどうやって設定するのか不思議でした。ウェブフックを受け取るためにラズベリーパイを設定する方法

私はFlaskとZappaと一緒にAmazonの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ショーでの私の経験不足のために、この上で私の頭を叩いてきた:これは私がこれまで持っているものです。たとえ正しいWebhookを聞いていてもShopifyのAPI情報を正しく読んでもわかりません。

もう一度おねがいします!

答えて

1

Shopifyには、Webフックを登録できる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を送信するためにウェブフックを呼び出します。 追加のイベントについては、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

関連する問題