如何使用 PHP 发送不和谐的 webhook?

Posted

技术标签:

【中文标题】如何使用 PHP 发送不和谐的 webhook?【英文标题】:How can I send a discord webhook using PHP? 【发布时间】:2020-03-31 19:18:12 【问题描述】:

我正在尝试让表单将信息发送到不和谐频道,但我无法建立 webhook 连接,因为它一直在说 "message": "Cannot send an empty message", "code": 50006 这是我的代码:

$url = "https://discordapp.com/api/webhooks/xxxxxxxxx";

$hookObject = json_encode([
    "content" => "A message will go here",
    "username" => "MyUsername",
], JSON_FORCE_OBJECT);

$ch = curl_init();
var_dump($hookObject);
curl_setopt_array( $ch, [
    CURLOPT_URL => $url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $hookObject,
    CURLOPT_HTTPHEADER => [
        "Length" => strlen( $hookObject ),
        "Content-Type" => "application/json"
    ]
]);

$response = curl_exec( $ch );
curl_close( $ch );

【问题讨论】:

相关***.com/questions/52565121/… 【参考方案1】:

这应该可以工作:

$url = "https://discordapp.com/api/webhooks/xxxxxxxxx";
$headers = [ 'Content-Type: application/json; charset=utf-8' ];
$POST = [ 'username' => 'Testing BOT', 'content' => 'Testing message' ];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($POST));
$response   = curl_exec($ch);

【讨论】:

请通过分享您的代码为何有效以及您为使其有效所做的工作来帮助询问您的人理解您的答案。 You should not switch off CURLOPT_SSL_VERIFYHOST or CURLOPT_SSL_VERIFYPEER。这可能是一个安全风险! Here is how to get the certificate bundle if your server is missing one

以上是关于如何使用 PHP 发送不和谐的 webhook?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我网站上的表单字段中的输入数据发送到一个不和谐的 webhook,该 webhook 向不和谐的用户发送消息?

如何通过 webhook 将 heroku 日志发送到不和谐?

我正在尝试让我的不和谐 webhook 使用按钮发送消息

发送从 webhook 收到的消息的 Discord 机器人

我不知道为啥我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生

如何通过 webhook 发送 Xpath 文本?