对聊天命令做出反应(webhook)

Posted

技术标签:

【中文标题】对聊天命令做出反应(webhook)【英文标题】:React to chat-commands (webhooks) 【发布时间】:2017-06-11 08:53:10 【问题描述】:

所以我为 discord 上的机器人设置了一个非常简单的设置:

<?php

function postToDiscord($message)

    $data = array(
        "content" => $message,
        "username" => "myBot",
    );
    $curl = curl_init("https://discordapp.com/api/webhooks/MY_HOOK");
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    return curl_exec($curl);


postToDiscord("foo bar");

这按预期工作,但我不明白这些钩子的概念。我在 github 上看到了 an example,但这会对使用 github 进行的操作作出反应。就像,在提交之后,我可以触发一个 webhook 并发布到一个频道。

但是,我想对特定的聊天命令做出反应,例如 !song,以从 spotify 检索当前歌曲。例如,在 twitch 上,我知道你可以从 IRC 中获取当前文本,但是这对不和谐有什么作用?

我想我需要一个观察者,它对给定的输入做出反应(也许使用 ajax 调用?)。非常感谢任何想法或反馈。

【问题讨论】:

您的示例是一种单向沟通渠道。您将发布到该 URL(正如您已经在做的那样)以将消息发送到该频道。您必须查看this 才能真正阅读消息。您可能可以查看DiscordPHP 以了解如何使用它。它应该像在discordapp.com/api/channels/channel.id/messages 上执行GET 一样简单。可能需要实现一个机器人(所以它充当一个虚拟用户) 【参考方案1】:

Discord WebHooks 只能发布他们无法获取的内容

【讨论】:

以上是关于对聊天命令做出反应(webhook)的主要内容,如果未能解决你的问题,请参考以下文章

如何让机器人响应/响应 slack 中传入的 webhook 消息?

将从 webhook 收到的通知传递给应用程序反应原生

在 Databricks 上处理 webhook 的策略

使用 webhook 在 twilio 中触发获取请求

我的 webhook 脚本中的 message\member 有问题

Facebook Messenger 的 Webhook 不验证 Laravel5.4