C# Discord Bot,尝试为命令包含 API
Posted
技术标签:
【中文标题】C# Discord Bot,尝试为命令包含 API【英文标题】:C# Discord Bot, trying to include an API for a command 【发布时间】:2018-04-17 09:40:43 【问题描述】:我是一名新手程序员,我正在尝试将一个小的 Discord 机器人放在一起作为服务器。在花了一两个小时试图弄清楚如何使用来自https://icanhazdadjoke.com/api 的 API 之后,我放弃了并前来寻求帮助。
目前我正在使用
public static async Task<string> GetRequest(string url)
using (HttpClient client = new HttpClient())
using (HttpResponseMessage response = await client.GetAsync(url))
using (HttpContent content = response.Content)
string myContent = await content.ReadAsStringAsync();
var obj = JObject.Parse(myContent);
var ret = (string)obj["joke"];
Console.WriteLine("joke: 0", ret);
return ret;
【问题讨论】:
【参考方案1】:当笑话 API 使用“笑话”时,代码正在寻找带有“事实”标签的内容;您不能只在不同的 API 中使用相同的代码,尤其是当它们具有 JSON 等结构化内容时。
尝试改变
var ret = (string)obj["fact"]
到:
var ret = (string)object["joke"]
我建议您阅读:What is JSON? 在 W3 结束。
并确保始终注意 API 文档:
以 JSON 格式获取随机笑话:
$ curl -H "Accept: application/json" https://icanhazdadjoke.com/
"id": "R7UfaahVfFd",
"joke": "My dog used to chase people on a bike a lot. It got so bad I had to take his bike away.",
"status": 200
您可以看到 JSON 结构和“笑话”字段。
【讨论】:
我在尝试复制/粘贴代码时这样做了。 console output @CasinoBoyale 显然控制台输出显示的代码比您共享的要多,请分享MCVE @CasinoBoyale 另外,请指出是什么准确不起作用;纯粹基于您共享的代码,字段访问是问题。 what detects the command 和 what is done when the command is detected 使用this 3 不会输出到控制台。以上是关于C# Discord Bot,尝试为命令包含 API的主要内容,如果未能解决你的问题,请参考以下文章
尝试通过语音通道播放 youtube 音频时 C# discord bot 未知操作码 8