提问者:小点点

使用Rails安装Shopify Webhook


我正在尝试在Rails中使用order/create设置一个基本的shopify webhook应用程序。

我已经按照webhooks支持api中的说明进行了部署,并部署了那里提供的Sync_App_Demo示例,但无法在授权步骤中授权日志。它会出现“我们很抱歉出了问题”页面——myapp/登录/身份验证

我是webhook的新手,在Google上搜索过很多东西,但是对于webhook连接的基本设置却没有任何乐趣。我根据创建的shopify_应用程序gem设置,将shopify应用程序api密钥和密码放入了中,但不确定这是否正确。

此外,一旦我通过webhook控制器连接,webhook订单/创建的位置(例如,我的测试商店的订单通知面板中的url/order.xml)是什么?

任何帮助都将不胜感激。

以下是shopify sync应用程序演示的链接:

https://github.com/Shopify/sync_app_demo

http://wiki.shopify.com/WebHook#Rails


共2个答案

匿名用户

当我自己寻找如何做到这一点时,偶然发现了你的问题。鉴于你在这里发布这个已经有几年多了,希望你已经找到了答案。如果你没有,以下是我们所做的:

在这两种情况下,您都必须知道Shopify API密钥、密码和商店名称。

1) 使用Shopify的Shopify\u apigem:

new_webhook = ShopifyAPI::Webhook.new({
   topic: "orders/create",
   address: "http://www.example.com/webhook", # substitute url with your endpoint
   format: "json"
})

new_webhook.save

2)使用终端:

curl -X POST -H 'Content-Type: application/json' 'https://shopify_api_key:shopify_api_password@store_name.myshopify.com/admin/webhooks.json' -d '{"webhooks": {"topic": "orders\/create", "address": "http:\/\/www.example.com\/webhook", "format": "json"}}' 

因此,您需要添加自己的shopify\u api\u密钥shopify\u api\u密码store\u名称,以及您希望接收已发布事件的地址endpoint。

其他有用的东西:

超钩子-用于在本地运行的服务器上接收网络钩子(例如,当使用rails s时)

请求宾-用于查看网络钩子响应的原始正文和标题

匿名用户

对于刚开始使用Ruby on Rails开发Shopify应用程序的新手,我强烈建议使用包括Shopify_api gem的Shopify_应用程序gem。

要注册webhook,您可以运行add_webhook生成器,或在shopify_应用程序中手动添加一行。rb初始值设定项:

config.webhooks = [
  {topic: 'app/uninstalled', address: 'https://myapp.url/webhooks/app_uninstalled', format: 'json'},
  {topic: 'orders/create', address: 'https://myapp.url/webhooks/orders_create', format: 'json'},
]

通过此设置,您的应用程序将在应用程序安装时注册Webhook。