我正在尝试使用网络挂钩将图像发布到 Slack 频道。这个基本设置允许我将文本发布到频道,但我无法发布图像。这是我的代码:
def posting():
import requests
import json
url = 'https://webhook'
image = {'media': open('trial.jpg', 'rb')}
r = requests.post(url, files=image)
r.json
Run Code Online (Sandbox Code Playgroud)
当我发布文本时,频道中会出现一个网络钩子机器人并将其发布。我需要进一步的身份验证才能发布吗?或者是 Slack 拥有自己的上传 API 并希望我完成该操作?或者机器人无权发布图像的东西?
我在这里查看了其他一些问题,但它们似乎没有使用网络挂钩或机器人,所以我不确定我的问题是否涉及这些问题。
我已将谷歌驱动器集成到我的应用程序中。为了实现同步,我还按照链接https://developers.google.com/drive/v3/web/push中的步骤为每个帐户配置了推送通知
下面是配置监视帐户所有文件的 java 代码
String uuid = UUID.randomUUID().toString();
Channel channel = new Channel();
channel.setId(uuid);
channel.setType("web_hook");
channel.setAddress(env.getProperty("webhookUrl"));
StartPageToken pageToken = service.changes().getStartPageToken().execute();
Channel response = service.changes().watch(pageToken.getStartPageToken(), channel).execute();
Run Code Online (Sandbox Code Playgroud)
在实际的 google 驱动器中进行更改时,我会在上面配置的 webhook url 中收到通知。
但问题是对于每次更改,我都得到以下标头的相同值,这些值与监视调用的响应相同,并且我没有获得与更改或请求正文相对应的任何正确的请求标头
//Getting request headers
String resourceId = request.getHeader("X-Goog-Resource-ID");
String resourceState = request.getHeader("X-Goog-Resource-State");
String expiration = request.getHeader("X-Goog-Channel-Expiration");
String resourceChanges = request.getHeader("X-Goog-Changed");
String channelId = request.getHeader("X-Goog-Channel-ID");
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道如何正确获取通知数据吗?我做错了什么吗?
这是另一个问题所陈述的相同问题,但尚未有正确的答案接收 Google Drive 推送通知
在不使用 requests 模块的情况下,如何将消息发送到 Discord webhook?我尝试过以下代码:
import urllib2
import json
url = 'webhook url'
values = {"username": "Bot", "text": "This is a test message."}
data = json.dumps(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
Run Code Online (Sandbox Code Playgroud)
这将返回以下错误:
urllib2.HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Nodejs 访问不和谐的 Webhook 来获取简单消息(目前)。
我在这里和其他地方看过几次尝试,但不太理解它们或无法自己复制它们。阅读文档并在线搜索,我发现node-fetch在我看来原则上应该工作得很好,而且看起来更简单。
const fetch = require('node-fetch');
var webhook = {
"id":"my webhook id",
"token":"my webhook token"
};
var URL = `https://discordapp.com/api/webhooks/${webhook.id}/${webhook.token}`;
fetch(URL, {
"method":"POST",
"payload": JSON.stringify({
"content":"test"
})
})
.then(res=> console.log(res));
Run Code Online (Sandbox Code Playgroud)
我得到的唯一输出是状态代码为 400 的响应对象。我唯一得到其他内容的时候是当我删除该方法时,然后我得到代码 200,这没有多大帮助...我的有效负载是否完全错误或者我在 URL 或 fetch 语法方面犯了错误?
条带文档说,当使用自动确认的付款意图时,您应该使用 webhook 异步完成客户的订单。
如果我提供一项服务,例如购买后下载文件的能力,那么为什么我需要监控网络payment_intent.succeeded钩子?
如果在以下handleCardPayment功能中付款成功,那么是否还有可能会失败?如果付款成功,为什么我不应该允许用户立即下载文件?
var cardholderName = document.getElementById('cardholder-name');
var cardButton = document.getElementById('card-button');
var clientSecret = cardButton.dataset.secret;
cardButton.addEventListener('click', function(ev) {
stripe.handleCardPayment(
clientSecret, cardElement, {
payment_method_data: {
billing_details: {name: cardholderName.value}
}
}
).then(function(result) {
if (result.error) {
// Display error.message in your UI.
} else {
// The payment has succeeded. Display a success message.
}
});
});
Run Code Online (Sandbox Code Playgroud)
也许我还没有理解 handleCardPayment 是如何工作的。任何帮助表示赞赏。
我正在尝试通过 twitter 文档中给出的 curl 命令将 url 注册为 twitter 上的 webhook。我认为 Twitter 文档有点过时或不正确。
curl --request POST --url "https://api.twitter.com/1.1/account_activity/all/prod/webhooks.json?url=https%3A%2F%2FXXXX.com%2Fwebhook%2Ftwitter" --header "authorization: OAuth oauth_consumer_key='XXXXXXXXXXXXXXXXXXXXXX', oauth_nonce='ODgyNjc5NjQ0MTM3NzI4NTcwMjY4NDQ0', oauth_signature='7daMyzB1JClE4xv8hXNCimWpGtA%3D', oauth_signature_method='HMAC-SHA1', oauth_timestamp='1568620293', oauth_token='XXXXXXXXXXXXXXXXXXXXX', oauth_version='1.0'"
Run Code Online (Sandbox Code Playgroud)
运行此代码后,我收到错误
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
Run Code Online (Sandbox Code Playgroud)
下面给出了我用来生成时间戳、oauth_nonce、oauth_signature 的代码。这些代码在python3中。我不太确定他们是否给出了正确的输出。
oauth_timestamp = str(int(time.time()))
#oauth_nonce
def get_nonce():
nonce = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits)for x in range(32))
return nonce
#oauth_signature
def escape(s):
"""Percent Encode the passed in string"""
return urllib.parse.quote_plus(s, safe='~')
def create_auth_header(parameters):
"""For all collected parameters, order them and create auth header"""
ordered_parameters = {}
ordered_parameters = …Run Code Online (Sandbox Code Playgroud) 设置挂钩时出错:抱歉,不支持 URL 主机 localhost,因为它无法通过公共 Internet 访问。添加 webhook 时出现此错误。
我正在努力验证 Paypal webhook 数据,但我遇到了一个问题,它总是为验证状态返回 FAILURE。我想知道是不是因为这一切都发生在沙盒环境中,而 Paypal 不允许对沙盒 webhook 事件进行验证?我按照这个 API 文档来实现调用:https : //developer.paypal.com/docs/api/webhooks/v1/#verify-webhook-signature
相关代码(来自单独的 elixir 模块):
def call(conn, _opts) do
conn
|> extract_webhook_signature(conn.params)
|> webhook_signature_valid?()
|> # handle the result
end
defp extract_webhook_signature(conn, params) do
%{
auth_algo: get_req_header(conn, "paypal-auth-algo") |> Enum.at(0, ""),
cert_url: get_req_header(conn, "paypal-cert-url") |> Enum.at(0, ""),
transmission_id: get_req_header(conn, "paypal-transmission-id") |> Enum.at(0, ""),
transmission_sig: get_req_header(conn, "paypal-transmission-sig") |> Enum.at(0, ""),
transmission_time: get_req_header(conn, "paypal-transmission-time") |> Enum.at(0, ""),
webhook_id: get_webhook_id(),
webhook_event: params
}
end
def webhook_signature_valid?(signature) do
body = Jason.encode!(signature)
case …Run Code Online (Sandbox Code Playgroud) 我的 AWS Lambda 有时无法接收来自 Monday.com 的事件消息。我正在使用容器化 Lambda 部署(通过 Docker)。流程是:
31 Mar 2022 20:51:03,614 [ERROR] (rapid) Failed to reserve: AlreadyReserved
Run Code Online (Sandbox Code Playgroud)
这是更大的日志:
2022-03-31 20:51:01.587 | Info | Functions.Post:: MONDAY 'item created' REQUEST
-
2022-03-31 20:51:01 | Info | Functions.SendCreateCommandAsync()
-
2022-03-31 20:51:01 | Info | Functions.SendCreateCommandAsync() Sending command :: {"PulseId":2452591832,"AssetName":null,"AssetType":"Webinar","CreatedDate":"2022-03-31T20:51:01.427Z"}
START RequestId: 8a5fa4f7-dacb-49ba-a9ac-4aa4f0797643 Version: $LATEST
31 Mar 2022 20:51:03,614 [ERROR] (rapid) Failed to reserve: AlreadyReserved
END RequestId: …Run Code Online (Sandbox Code Playgroud) 我目前正在处理我的 Webhooks,但我的 Webhooks 控制器中出现错误。
这是错误:
#<Stripe::SignatureVerificationError: No signatures found matching the expected signature for payload>
No template found for WebhooksController#create, rendering head :no_content
Completed 204 No Content in 1ms (Allocations: 594)
Run Code Online (Sandbox Code Playgroud)
经过一段时间尝试调试这个问题后,我发现它来自这些行,因为我在控制台中看到的最后一个代码是错误和“签名错误”...
rescue Stripe::SignatureVerificationError => e
# Invalid signature
puts "Signature error"
p e
return
end
Run Code Online (Sandbox Code Playgroud)
这是控制器:
class WebhooksController < ApplicationController
skip_before_action :authenticate_user!
skip_before_action :verify_authenticity_token
def create
payload = request.body.read
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
event = nil
begin
event = Stripe::Webhook.construct_event(
payload, sig_header, Rails.application.credentials[:stripe][:webhook]
)
rescue JSON::ParserError => e
status 400 …Run Code Online (Sandbox Code Playgroud) webhooks ×10
discord ×2
python ×2
aws-lambda ×1
bots ×1
discord.js ×1
elixir ×1
java ×1
monday.com ×1
node.js ×1
paypal ×1
python-2.7 ×1
python-3.x ×1
ruby ×1
slack-api ×1
spring ×1
urllib2 ×1