我相信要将 Shopify webhook 与 Rails 应用程序集成,Rails 应用程序需要禁用默认verify_authenticity_token方法,并使用标头实现自己的身份验证X_SHOPIFY_HMAC_SHA256。Shopify 文档说只使用request.body.read. 所以,我这样做了:
def create
verify_webhook(request)
# Send back a 200 OK response
head :ok
end
def verify_webhook(request)
header_hmac = request.headers["HTTP_X_SHOPIFY_HMAC_SHA256"]
digest = OpenSSL::Digest.new("sha256")
request.body.rewind
calculated_hmac = Base64.encode64(OpenSSL::HMAC.digest(digest, SHARED_SECRET, request.body.read)).strip
puts "header hmac: #{header_hmac}"
puts "calculated hmac: #{calculated_hmac}"
puts "Verified:#{ActiveSupport::SecurityUtils.secure_compare(calculated_hmac, header_hmac)}"
end
Run Code Online (Sandbox Code Playgroud)
Shopify Webhook 定向到正确的 URL,并且路由将其提供给上面显示的控制器方法。但是当我发送测试通知时,输出不正确。两个HMAC不相等,因此未验证。我相当确定问题在于 Shopify 使用整个请求作为身份验证哈希的种子,而不仅仅是 POST 内容。所以,我需要原始的、未受影响的 HTTP 请求,除非我弄错了。
经过至少一个小时的搜索后,这个问题似乎是互联网上唯一有希望的问题。这正是我要问的,并且得到了 30 票赞成的接受答案。但他的回答……很荒谬。它吐出各种难以理解的、乱码的东西。我错过了一些明显的东西吗?
此外,这篇文章似乎表明我正在寻找的东西是不可能的。似乎 Rails 从未收到过纯粹的请求,但在到达 Rails 之前,Rack …
创建 webhook 后,当我填写表单时,它会向我的 API 发送 POST 请求,但正文为空。
我在互联网上找不到任何东西,SM 文档还有很多不足之处。
我的API
async testWebhook({ request, response }) {
console.log('request.body', request.body)
response.status(200).send()
return
}
Run Code Online (Sandbox Code Playgroud)
会是什么?
我对这个问题深感震惊。我请求您回答或给予提示。我已经没有选择了。
我通过 WebHook 在 CPU 利用率较高时调用 azure runbook。我的问题是 Runbook 内部数据未正确解码。例如,下面的行不打印任何内容。
Write-Output $WebHookData.RequestHeader
Run Code Online (Sandbox Code Playgroud)
如果我尝试将数据显式转换为 JSON,就像这样
*$WebhookData = ConvertFrom-Json $WebhookData*
Run Code Online (Sandbox Code Playgroud)
那么这是一个投掷错误。
ConvertFrom-Json:无效的 JSON 原语:。在行:6 字符:31 + $WebhookData = $WebhookData | 从 Json 转换
顺便说一句,我正在尝试使用 Azure 库上提供的 Runbook {使用 Azure 自动化垂直扩展 Azure 资源管理器 VM}
我的 Webhook 是从虚拟机上创建的警报调用的。
一个非常奇怪的观察:
工作 WebHood 示例(在示例中找到) {"WebhookName":"test1","RequestBody":" [ \r\n {\r\n \"Message\": \"Test Message\"\r\n } \r\n****]****"
不工作(从虚拟机调用 Runbook 时发送的数据):
{"WebhookName":"test2","RequestBody":" { \"schemaId\":\"AzureMonitorMetricAlert\" } }
谢谢
powershell webhooks azure-autoscaling-block azure-automation azure-runbook
我们创建了一个 Webhook,用于在从 Azure AD 删除用户时接收“删除”通知。但当我们删除用户时,我们没有收到任何通知。在 AAD 中,用户首先被放入回收站,但如果我们从回收站中删除用户,我们也不会收到任何通知。我们已经尝试过接收电子邮件的代码 -> 有效。通过更改 AAD 中的用户 -> 这也有效。因此我们将“更新”更改为“删除”,并且不会触发任何调用。
我们从文档(https://learn.microsoft.com/en-us/graph/webhooks)和微软提供的示例代码(https://github.com/microsoftgraph/aspnet-webhooks-rest-sample)开始
我们使用权限范围:User.Read.All 和 Directory.Read.All
Graph Webhook 订阅:资源:“users”ChangeType:“deleted”
当我们将“updated”指定为 ChangeType 时,我们如预期收到了通知。但 ChangeType“已删除”没有发出任何通知。这是不支持的,还是我们缺少权限......我希望有人可以提供帮助。
我可以通过应用程序脚本通过 webhooks 向聊天室发送消息,但是我如何发送对该消息的回复。这是一种单向聊天。我如何才能通过 webhooks 将其作为对话流。
我知道 Webhook 用于从托管 git 存储库触发服务器端操作,CI/CD 代表托管 git 存储库的持续集成和持续部署/交付,但关键区别是什么,特别是当它们都是时由单个 git 托管服务提供商(如 GitLab 或 GitHub)提供吗?(对于 GitLab,这些指的是 Webhooks 和 CI/CD,而对于 GitHub,这些指的是 Webhooks 和 GitHub Actions。)
文档模糊地详细说明了 Webhook 如何以及如何用于触发 CI/CD,但与此同时,即使没有将显式 Webhook 添加到 git 存储库,供应商提供的 CI/CD 也可以运行。这是否意味着每个使用供应商提供的 CI/CD 的托管 git 存储库背后都有一个 Webhook?
我从上面的理解是,显式 Webhooks(与底层 Webhook 相反)可用于触发第 3 方 CI/CD,而 git 托管服务提供商的 CI/CD 是由同一方托管和运行的。它是否正确?
非常感谢发布答案的人。
git continuous-integration webhooks continuous-deployment github-actions
我使用 EC2 实例来托管我的网站,并且当前(尝试)使用webhook库和 Github Webhooks设置自动部署管道。我正在遵循 webhook 存储库以及这篇博文的指南(我理解它是用于数字海洋的东西,但我认为同样的东西通常适用)。
\n\n我能够在我的 EC2 实例 \xe2\x80\x93 上设置正确的配置文件,我必须指定 Webhook 库提供/使用来自实例私有IP地址的内容,这是(根据我的理解)通过分配给实例的弹性 IP 自动进行 NAT。这是我当前的hooks.json文件:
[{\n "id": "autodeploy",\n "execute-command": "/home/ubuntu/webhooks/autodeploy/deploy.sh",\n "command-working-directory": "/home/ubuntu/site",\n "response-message": "Executing deploy script..."\n}]\nRun Code Online (Sandbox Code Playgroud)\n\n根据文档,这告诉 webhook,当某个端点被GET/请求命中时,将执行POST由 表示的路径中的脚本。execute-command要实际启动服务器来接收这些GET/POST请求,我运行以下命令(并获得以下输出):
ubuntu@ip-xxx-xx-xx-xxx:~/webhooks$ webhook -hooks hooks.json -ip "xxx-xx-xx-xxx" -verbose\n[webhook] 2019/12/22 08:30:48 version 2.5.0 starting\n[webhook] 2019/12/22 08:30:48 setting up os signal watcher\n[webhook] 2019/12/22 08:30:48 attempting to load hooks from hooks.json\n[webhook] 2019/12/22 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,该项目有两种类型的产品:订阅和事件注册。
我对两者都使用Stripe Checkout Session。由于他们的流程不同,我使用了两个 webhook;每人一份。
例如:
http://example.com/payment/subscription_webhooks.php
http://example.com/payment/event_webhooks.php
问题是,一旦结账会话完成,无论是订阅还是事件注册,两个 webhook 都会被触发。
我正在寻找一种解决方案来定义应触发哪个 webhook。
我使用 Sonarqube Server Community EditionVersion 8.4.1(内部版本 35646)和 Jenkins Server 2.235.5 进行测试。两者都在同一台机器上。
我尝试按照一些教程在我的 Jenkins Pipeline 中实现 Sonarqube 功能。
这是我定义 Sonarqube 实现的管道阶段/步骤:
当我想在 Sonarqube 中定义 Webhook 时,会出现以下消息:
我已经尝试使用其他名称更新 Windows 主机文件,但没有工作:(
我正在尝试为共享点列表创建一个网络挂钩。不幸的是,唯一的方法是通过调用 API。因此,我调用 API 来创建自己的 Web 挂钩,连接到我的共享点站点中的自定义列表。
我在我的共享点网站中打开了 Chrome 中的开发工具,并使用了以下代码:
fetch("https://my-org.sharepoint.com/sites/my-site/_api/web/lists('list-id')/subscriptions", {
"headers": {
"accept": "application/json",
"content-type": "application/json",
},
"body": "{\"resource\":\"https://my-org.sharepoint.com/sites/my-site/_api/web/lists('list-id')\",\"notificationUrl\":\"http://my-ngrok-id.ngrok.io\",\"expirationDateTime\":\"2021-11-03T21:54:41.000\"}",
"method": "POST",
});
Run Code Online (Sandbox Code Playgroud)
但它给出了一个403错误:
{
"odata.error": {
"code": "-2130575251, Microsoft.SharePoint.SPException",
"message": {
"lang": "en-US",
"value": "The security validation for this page is invalid and might be corrupted. Please use your web browser's Back button to try your operation again."
}
}
}
Run Code Online (Sandbox Code Playgroud) webhooks ×10
amazon-ec2 ×1
azure ×1
git ×1
http ×1
http-post ×1
jenkins ×1
node.js ×1
payment ×1
php ×1
pipeline ×1
powershell ×1
sharepoint ×1
shopify ×1
sonarqube ×1
surveymonkey ×1