如何设置 Raspberry Pi 来接收 webhook
How to setup a Raspberry Pi to receive webhooks
我目前正在做一个小项目,只要在 Shopify 上创建新订单,我的 raspberry pi 就会点亮独角兽帽。我从来没有使用过 webhooks 或 Web 服务器,更不用说 Flask 或 Zappa 了,我很好奇如何设置它而不将 pi 暴露在我家庭网络上的开放互联网上。
我读到过将 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()
完成后,创建的任何订单都将调用 webhook 将 order data 发送到您的 pi 地址。
有关可用作触发器的其他事件,请参阅 API docs。
您的 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()
对于您要实现的目标,您不需要对订单数据做任何事情,
但检查 and/or 日志可能会很好。
我目前正在做一个小项目,只要在 Shopify 上创建新订单,我的 raspberry pi 就会点亮独角兽帽。我从来没有使用过 webhooks 或 Web 服务器,更不用说 Flask 或 Zappa 了,我很好奇如何设置它而不将 pi 暴露在我家庭网络上的开放互联网上。
我读到过将 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()
完成后,创建的任何订单都将调用 webhook 将 order data 发送到您的 pi 地址。 有关可用作触发器的其他事件,请参阅 API docs。
您的 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()
对于您要实现的目标,您不需要对订单数据做任何事情, 但检查 and/or 日志可能会很好。