之前网上很多PHP版本的,我一直用的是这个:https://bing.img.run/api.html

下面是一个JS版本的,部署到cloudflare可以直接用

export default {
  async fetch(request) {
    const url = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN";
    
    // 1. 获取 Bing 数据
    const response = await fetch(url);
    const data = await response.json();
    
    // 2. 拼接真实图片地址
    const imgUrl = 'https://cn.bing.com' + data.images[0].urlbase + '_1920x1080.jpg';
    
    // 3. 返回 302 重定向,直接跳转到图片
    return Response.redirect(imgUrl, 302);
  }
}

2026-06-25

添加一个腾讯云Edgeone边缘函数版本的

// 注册 fetch 事件监听器,这是边缘函数的运行入口
addEventListener('fetch', event => {
  // 当函数代码抛出未处理的异常时,边缘函数会将此请求转发回源站
  event.passThroughOnException();
  event.respondWith(handleEvent(event));
});

// 处理请求的异步函数
async function handleEvent(event) {
  const request = event.request;
  const bingApiUrl = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN";

  try {
    // 1. 获取 Bing 数据
    const response = await fetch(bingApiUrl);
    const data = await response.json();

    // 2. 拼接真实图片地址
    // 防御性检查:确保 data.images 存在且不为空
    if (!data.images || data.images.length === 0) {
      // 如果数据异常,返回一个 502 错误响应
      return new Response('Failed to fetch Bing image data', { status: 502 });
    }
    const imgUrl = 'https://cn.bing.com' + data.images[0].urlbase + '_1920x1080.jpg';

    // 3. 返回 302 重定向,直接跳转到图片
    return Response.redirect(imgUrl, 302);
  } catch (error) {
    // 若 fetch 或 JSON 解析出错,返回 502 错误
    return new Response('Internal Error: ' + error.message, { status: 502 });
  }
}

标签:必应壁纸 API, Cloudflare Workers, JS 壁纸脚本, Bing 每日图, 壁纸接口

你的评论