一个生成随机风景的插件,怎么样让api返回图片?

借口地址是:随机PC壁纸(原图)-免费API
我现在写的代码是:

//import { Context, h, Schema } from "koishi";

export const name = "4kfengjing";

export interface Config {}

export const Config: Schema<Config> = Schema.object({});

export function apply(ctx: Context) {
  const cmd2 = ctx.command("风景").action(async () => {
    const ret = await ctx.http.get(
      "https://v.api.aa1.cn/api/api-fj-1/index.php?aa1=yuantu"
    );
    return h.image(ret);
  });
}

现在的效果是这样的,可以看到图片没有成功发出来,我想知道如何让图片在沙盒里显示出来:


ps:这里有三种接口,如果可以,我还想知道我该如何更换这些接口?

2 个赞

你好,让我来解答你的问题

  1. 阅读这个 api 的文档发现,虽然它没有明确指出,但是在提供的实例中,yuantu 是填写在 aa1= 后面的,因此 url json 应该也替换到相同的地方
  2. 在浏览器测试发现,请求 yuantu 会返回 302 跳转到一张随机图片的地址,请求 url 会直接返回图片地址,请求 json 会返回一个 json 包含了图片的地址,我推荐你使用 url 的方式,正好可以直接喂到 h.image 里