标签: webhooks

如何在产品/更新Webhook中获取Shopify商店ID?

我正在开发一个Shopify应用程序,通过Shopify API设置"产品/创建"Webhook.

虽然Webhook正在将POST发送到正确的地址而没有任何问题,但似乎它没有提供已为其创建产品的商店ID.这是一个问题,因为我需要存储商店及其产品的元数据.我需要确保商店与其产品之间的数据库中存在链接.

有没有办法:

  • 找到通过Webhook提供给我的产品的商店ID

  • 使用webhook发送请求时返回的自定义数据配置Webhook,以便我可以在创建它时强制它返回商店ID

提前致谢!

webhooks shopify

1
推荐指数
1
解决办法
1959
查看次数

Golang - Dropbox webhook 签名验证 hmac

我正在编写一个需要使用 Dropbox 网络钩子的程序。我还没有找到任何已经到位的 Go 实现,所以我决定写我的。不幸的是,它似乎不起作用。

我认为这里的问题是hmac,因为我很可能做错了什么,但我似乎无法理解这里的问题到底在哪里。任何的想法?

以下是我所拥有的:

package dboxwebhook

import (
    "bytes"
    "crypto/hmac"
    "crypto/sha256"
    "errors"
    "io"
    "io/ioutil"
    "log"
)

type Signature struct {
    AppSecret []byte
    Signature []byte
}

func (w *Signature) Check(reqBody io.ReadCloser) error {

    if bytes.Compare(w.Signature, nil) == 0 {
        return errors.New("DropBox signature doesnt exist")
    }

    // building HMAC key (https://golang.org/pkg/crypto/hmac/)
    mac := hmac.New(sha256.New, w.AppSecret)
    requestBody, err := ioutil.ReadAll(reqBody)
    if err != nil {
        return err
    }

    mac.Write(requestBody)
    expectedMac := mac.Sum(nil)

    log.Println(w.AppSecret)
    log.Println(expectedMac)
    log.Println(w.Signature)

    // compare if …
Run Code Online (Sandbox Code Playgroud)

sha256 go hmac webhooks dropbox-api

1
推荐指数
1
解决办法
809
查看次数

使用带有秘密的 curl 模拟 github hook

我有一个类似于Emulate github service hooks wih curl 的需求,但我也在我的 webhook 中使用了一个秘密,但它无法正常工作。

这是我作为接收后挂钩所做的:

#!/bin/bash

while read oldrev newrev refname; do
  tmpfile=$(mktemp --suffix=.json)

  cat << EOF > $tmpfile
  {
    "ref": "${refname}"
  }
EOF

  sig=$(cat "${tmpfile}" | openssl dgst -sha1 -hmac "${WEBHOOK_SECRET}" | awk '{print "X-Hub-Signature: sha1="$2}')

  curl -X POST -H "Content-Type: application/json" -H "${sig}" --data-urlencode "payload@${tmpfile}" http://webhook:9000/hooks/r10k

  rm -f "${tmpfile}"
done
Run Code Online (Sandbox Code Playgroud)

webhook(与 github 一起使用)抱怨签名错误。

我究竟做错了什么?

curl openssl github hmac webhooks

1
推荐指数
1
解决办法
852
查看次数

如何防止在php"exec"的参数中恶意注入(webhook - > bash script)

我写了一个webhook来集成到chat(slack/mattermost api)中.

启动和运行的最简单方法是一个快速的PHP脚本,如下所示:

<?php
$token = $_POST["token"];
$arg = $_POST["text"];

$output = exec("./webhook_script.sh {$token} {$arg}");
Run Code Online (Sandbox Code Playgroud)

目前,脚本工作正常,但我担心有人可以恶意地执行http POST,其中查询参数text(脚本:) $arg具有某种注入攻击.

例: http://myserver/webhook.php?token=abc&text=123;rm -rf *

因此$arg变得123; rm -rfexec命令执行恶意rm -rf *

这与我熟悉的"sql注入"本质上类似,但我不确定如何使bash脚本安全...

是以某种方式引用参数,或者使用a regex来检查脚本参数是一件简单的事情吗?

php bash http-post code-injection webhooks

1
推荐指数
1
解决办法
768
查看次数

如何从 Webhook 获取数据以存储在数据库中?

我正在使用基于 SendGrid API v3 的 Webhook。Webhook 完全设置了 SendGrid 发布到的端点,但我需要能够接收解析的数据并将其存储在使用 PHP 的数据库中,但不知道如何做到这一点。

我在启动数据检索或 POST 之前使用过 API,但是当 API 服务器是一个 POST 时,我如何捕获通过 Webhook 端点解析的数据?到目前为止,我有一些简单的方法,但我真的不清楚如何解决这个问题:

<?php

$json = file_get_contents('https://example.com/webhook.php');
$json_decoded = json_decode($json, true);
$var_dump(json_decoded);

?>
Run Code Online (Sandbox Code Playgroud)

我曾尝试向主持人发送多封电子邮件,但每次拨打此电话时我都会返回NULL.

php post json webhooks sendgrid

1
推荐指数
1
解决办法
1万
查看次数

如何使用 ngrok 将流量转发到上下文路径?

假设我的 Web 应用程序在本地托管在http://localhost:9090/myapp

如何让 ngrok 指向这个 URL?

因为,如果我使用ngrok http 9090它实际上指向 localhost:9090。

http webhooks ngrok

1
推荐指数
1
解决办法
1548
查看次数

git - 检查分支和子模块

我可以使用哪些函数将所有子模块(本地 repo)同步/初始化/更新到远程分支中的版本?

“同步”(我们称之为,我不是说 git sync!)也必须在以下情况下工作:

  • 一个子模块只被添加到远程分支
  • 子模块中的文件已在本地添加/删除/修改。跟踪或未跟踪。
  • 删除子模块(可选)

本质上,我希望本地 repo 始终与远程分支的版本完全相同。每当我更改子模块中的某些内容时,都无需过多摆弄。所以没有手动ssh'ing到服务器来初始化一个新的子模块,只为了部署脚本工作......

这可以在不克隆(又名传输)整个存储库的情况下实现吗?我选择 git 是为了有一种安全、快速的方式来部署我的源代码。但我能想到的唯一选择是git clone --recursive在它们各自的标签下做一个完整的和检查子模块。在这种情况下,rsync 可能会在同步文件方面做得更好。

git deployment webhooks git-submodules gitlab

1
推荐指数
1
解决办法
6150
查看次数

通过松弛Webhook将消息发送到其他频道失败

我不确定我是否正确地理解了如何使用webhooks,但是:我想以不同的渠道或不同的用户(而不是一次)发送消息,而无需参与该对话。

我的问题:我只能为特定用户创建webhooks,所以我最终为每个用户/频道拥有唯一的URL?如果我使用我所使用的库中的“ channel”参数或什至“ setReceipent”方法之类的东西,它不会有任何效果,只有为webhook创建的频道/用户会收到消息。

我需要使用API​​访问权限还是可以使用Webhooks满足我的需求?

webhooks slack-api slack

1
推荐指数
1
解决办法
3547
查看次数

Azure 应用服务持续部署 Webhook 不起作用

(我已经在微软论坛上问过,但没有得到答案。)

我有一个使用私有注册表且启用了持续部署的应用服务。该应用程序运行正常,但持续部署的 Webhook URL 不起作用。

这是对 webhook 的 HTTP GET 请求的输出:

$ curl https://\$MySiteName:SomeLongPassword@mysite.scm.azurewebsites.net/docker/hook
"No route registered for '/docker/hook'"
Run Code Online (Sandbox Code Playgroud)

Microsoft 论坛中有人告诉我尝试 POST 请求,因此输出如下:

$ curl -X POST https://\$MySiteName:SomeLongPassword@mysite.scm.azurewebsites.net/docker/hook
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Length Required</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Length Required</h2>
<hr><p>HTTP Error 411. The request must be chunked or have a content length.</p>
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)

我还没有在 Microsoft Azure 文档中的任何地方找到如何使用 webhook。

azure webhooks continuous-deployment docker azure-web-app-service

1
推荐指数
1
解决办法
1195
查看次数

从 Stripe 获取 webhook 异常

我正在尝试从 Stripe 设置一个 webhook 来处理该payment_intent.succeeded事件,但出现异常。这是我来自 Node 后端的代码(我已经提取了我希望的所有相关部分。如果还需要其他任何东西,请告诉我):

const stripeWebHookSecret = 'whsec_WA0Rh4vAD3z0rMWy4kv2p6XXXXXXXXXXX';

import express from 'express';
const app = express();
app.use(bodyParser.urlencoded({ extended:true }));
app.use(bodyParser.json());
app.use(session({ <some params here> }));

const openRouter = express.Router();

registerOpenPaymentRoutes(openRouter);

app.use('/open', openRouter);
Run Code Online (Sandbox Code Playgroud)

的实现registerOpenPaymentRoutes如下所示:

export const registerOpenPaymentRoutes = (router) => {
    router.post('/payment/intent/webhook', bodyParser.raw({type: 'application/json'}), (req, res) => {
        let signature = req.headers['stripe-signature'];
        try {
            let event = stripe.webhooks.constructEvent(req.body, signature, stripeWebHookSecret);
            switch(event.type){
                case 'payment_intent.succeeded':
                    let intent = event.data.object;
                    res.json({ message: 'Everything went smooth!', intent }); …
Run Code Online (Sandbox Code Playgroud)

webhooks node.js stripe-payments

1
推荐指数
1
解决办法
1948
查看次数