Bing新闻搜索API中originalImg参数的正确用法与端点选择指南

Bing新闻搜索API中originalImg参数的正确用法与端点选择指南

针对Bing新闻搜索API中originalImg参数无法获取原始图片URL的问题,本文深入解析了其正确用法。核心在于该参数仅适用于/news/search端点,而非/news或趋势话题端点。通过理解API文档,开发者可避免常见配置错误,确保按预期获取新闻图片的原始尺寸信息。

Bing新闻搜索API originalImg 参数解析

在使用bing新闻搜索api时,开发者有时会遇到即使设置了originalimg=true参数,也无法获取新闻图片的原始尺寸url,而只得到缩略图链接的问题。这通常是由于对api端点的选择存在误解。

考虑以下常见的API请求示例,该请求旨在获取印度类别新闻的原始图片:

const url = 'https://bing-news-search1.p.rapidapi.com/news?&originalImg=true&category=india&cc=in&safeSearch=Off&textFormat=Raw';const options = {    method: 'GET',    headers: {        'X-BingApis-SDK': 'true',        'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY', // 请替换为您的API密钥        'X-RapidAPI-Host': 'bing-news-search1.p.rapidapi.com'    }};// 假设调用并获取响应// fetch(url, options).then(response => response.json()).then(data => console.log(data));

然而,上述请求返回的图片信息可能仍是缩略图格式,例如:

{    "url": "https://www.msn.com/en-in/news/world/...",    "image": {        "_type": "ImageObject",        "thumbnail": {            "_type": "ImageObject",            "contentUrl": "https://www.bing.com/th?id=OVFT._MJPdPJ958_nyj_Ker8qOy&pid=News",            "width": 1280,            "height": 720,            "isLicensed": true        }    }}

其中thumbnail.contentUrl指向的是Bing生成的缩略图,而非新闻源提供的原始图片URL。开发者期望的输出可能包含一个顶级的contentUrl字段,直接指向原始图片,例如:

{    "image": {        "_type": "ImageObject",        "contentUrl": "https://s.yimg.com/ny/api/res/1.2/6vOM5nkYbwetaWehEa6lGg--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD02MDA-/https://media.zenfs.com/en/hearst_womens_health_52/9743c154e3be883ec18c41f03fc44d58",        "thumbnail": {            "_type": "ImageObject",            "contentUrl": "https://www.bing.com/th?id=OVFT.1Wypj4IiKxycYuiB2Q81GC&pid=News",            "width": 700,            "height": 350        }    }}

问题根源:originalImg 参数的端点限制

根据Bing新闻搜索API v7的官方文档,originalImg参数并非对所有新闻API端点都有效。其关键限制在于:

“此参数仅用于新闻搜索API。调用Web搜索API时请勿指定此参数。趋势话题会忽略此参数。”

这意味着originalImg=true参数仅在与/news/search端点结合使用时才会生效,而对于/news(通常用于获取热门或分类新闻)或/news/trendingtopics端点,该参数将被忽略。

在上述示例中,API请求的URL使用的是/news端点 (https://bing-news-search1.p.rapidapi.com/news?…),这正是导致originalImg参数无效的根本原因。

正确使用 originalImg 参数

要正确获取新闻的原始图片URL,您需要将API请求的端点更改为/news/search。这个端点通常用于执行带有特定查询词的新闻搜索,但它也支持originalImg参数以获取搜索结果中新闻的原始图片。

以下是修改后的API请求示例,展示了如何使用/news/search端点:

const url = 'https://bing-news-search1.p.rapidapi.com/news/search?q=india&originalImg=true&category=india&cc=in&safeSearch=Off&textFormat=Raw'; // 注意:端点已更改为 /news/searchconst options = {    method: 'GET',    headers: {        'X-BingApis-SDK': 'true',        'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY', // 请替换为您的API密钥        'X-RapidAPI-Host': 'bing-news-search1.p.rapidapi.com'    }};// 假设调用并获取响应// fetch(url, options).then(response => response.json()).then(data => console.log(data));

注意事项:

端点选择: 始终根据您的具体需求选择正确的API端点。如果您需要执行带有查询词的搜索并获取原始图片,请使用/news/search。如果您只是想获取某个类别下的热门新闻且不关心原始图片,/news端点可能更合适。q 参数: 当使用/news/search端点时,通常需要提供一个q(查询)参数来指定搜索关键词。即使您只是想按类别过滤,也可能需要提供一个通用查询词(例如,示例中的q=india)。文档查阅: 在开发过程中,务必查阅最新的官方API文档(例如Microsoft Learn上的Bing News API v7参考),以了解每个参数和端点的具体行为和限制。

总结

originalImg参数是Bing新闻搜索API中一个非常有用的功能,但其有效性严格依赖于所选的API端点。为了成功获取新闻的原始图片URL,开发者必须确保在请求中使用了/news/search端点,而不是更通用的/news端点。理解并遵守API文档中关于参数和端点的规定,是避免此类常见问题的关键。

以上就是Bing新闻搜索API中originalImg参数的正确用法与端点选择指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1523599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月20日 16:03:09
下一篇 2025年12月20日 16:03:16

相关推荐

  • JavaScript中根据数组顺序对对象键进行排序的实现与解析

    本文详细解析了一个JavaScript函数如何根据预定义的数组顺序,对一个对象的键进行重新排序。通过将对象转换为键值对数组,利用数组的sort()方法和indexOf()进行自定义排序,最终将排序后的键值对重新组合成一个新对象,从而实现按指定顺序排列对象键的目的。 理解JavaScript对象键的排…

    2025年12月20日
    000
  • JavaScript 的模块加载器在背后是如何解析和缓存模块的?

    模块加载器通过解析、实例化、执行和缓存四步机制确保ES模块仅加载一次。首先根据import路径解析出完整URL并获取源码,生成模块记录(静态分析)。接着创建模块环境记录,建立导入导出绑定,形成内存连接结构。随后执行模块代码,填充导出值,支持动态绑定。最后以模块URL为键将实例存入全局模块映射表,后续…

    2025年12月20日
    000
  • 如何在桌面端按需加载特定脚本

    本教程旨在解决第三方脚本(如广告单元)在移动设备上干扰布局的问题,提供一种基于JavaScript的解决方案。通过检测浏览器窗口宽度,我们可以在特定屏幕尺寸(例如800像素及以上)时才执行目标脚本,从而实现脚本的按需加载,优化移动端用户体验。 概述:按需加载脚本的必要性 在现代web开发中,响应式设…

    2025年12月20日
    000
  • JavaScript 单输入框实现正则表达式查找与替换

    本教程详细介绍了如何在JavaScript中,通过单个输入框接收查找模式(支持正则表达式和修饰符)和替换内容,并利用String.prototype.match()解析输入、new RegExp()动态创建正则表达式,最终实现String.prototype.replace()进行文本的高效查找与替…

    2025年12月20日 好文分享
    000
  • 解决 npm start 编译错误:React 项目常见问题与排查指南

    本文旨在解决 React 项目中执行 npm start 命令时遇到的编译错误。核心内容包括识别错误发生的常见原因,如工作目录不正确、项目初始化不当或 package.json 配置问题,并提供一套系统性的排查步骤和最佳实践。通过确保在正确的项目根目录执行命令、使用 npx 初始化项目,并检查 pa…

    2025年12月20日
    000
  • 如何实现一个支持语法高亮的在线代码编辑器?

    首选 CodeMirror 或 Monaco Editor 构建在线代码编辑器,引入对应语言 mode 文件实现语法高亮,通过 theme 配置更换主题,调用 getValue() 获取代码并结合事件监听实现保存与交互功能。 要实现一个支持语法高亮的在线代码编辑器,核心是使用成熟的代码编辑器组件,并…

    2025年12月20日
    000
  • 揭秘Node.js postinstall脚本:理解其执行机制与调试策略

    本文深入探讨Node.js依赖包中postinstall脚本的执行机制。我们将解析为何在某些在线环境中(如Stackblitz)脚本可能不运行,以及在本地开发环境中,即使脚本成功执行,其控制台输出也可能被npm默认抑制。文章将提供详细的调试方法,包括使用npm install –logl…

    2025年12月20日
    000
  • JavaScript中构建嵌套对象URL查询参数的实用指南

    本教程详细阐述了如何在JavaScript中将包含嵌套结构的普通对象转换为符合特定格式(如key[subkey]=value)的URL查询参数。通过自定义递归函数,文章不仅解决了标准URLSearchParams在处理此类嵌套时的局限性,还提供了包含URL编码的优化代码实现、详细的函数解析、使用示例…

    2025年12月20日
    000
  • 深入理解Node.js依赖包的postinstall脚本执行机制与调试

    本文旨在探讨Node.js依赖包中postinstall脚本的运行机制及常见问题。我们将分析为何这些脚本有时不按预期执行或其输出不可见,特别是在特定环境如Stackblitz中,以及npm默认的输出抑制行为。文章将提供实用的调试方法,如使用–loglevel=verbose和&#8211…

    2025年12月20日
    000
  • JavaScript如何实现真正的私有类字段?

    JavaScript实现真正私有类字段的官方推荐方式是使用#前缀语法,如#balance在类外部无法访问,确保了语言层面的强封装性,而WeakMap等旧方案因需外部存储且不够直观而受限。 JavaScript实现真正私有类字段,最直接且官方推荐的方式是使用ES2022引入的#前缀语法。这种语法在语言…

    2025年12月20日
    000
  • JavaScript中的BigInt类型有哪些实际的应用场景?

    BigInt 可安全处理超大整数运算,适用于金融、科学计算、数据库交互、加密算法及高精度时间戳等场景,解决 Number 类型精度丢失问题。 BigInt 是 JavaScript 中用于表示任意精度整数的一种数据类型,它能处理比 Number 类型更大范围的整数(Number 最大安全整数为 2⁵…

    2025年12月20日
    000
  • 深入理解与调试 npm 依赖的 postinstall 脚本

    本文旨在解析 npm 依赖中 postinstall 脚本的运行机制及常见问题。我们将探讨为何在某些环境中(如 Stackblitz)脚本可能不执行,以及 npm 默认如何处理依赖脚本的控制台输出。教程将提供本地调试方法,包括使用 npm install 带有 loglevel 或 foregrou…

    2025年12月20日
    000
  • Karma测试框架的终结:迁移路径与现代替代方案

    Karma测试框架已正式弃用,不再接受新功能和常规错误修复。本文旨在为用户,特别是Angular开发者,提供从Karma迁移到现代测试方案(如Jest、Web Test Runner、Vitest等)的详细指南。我们将探讨Karma弃用的原因、Angular官方推荐的迁移路径,并介绍适用于不同场景的…

    2025年12月20日
    000
  • JavaScript中的日期和时间处理有哪些最佳实践?

    使用ISO 8601格式创建日期可避免解析差异,推荐new Date(‘2025-04-05T10:00:00Z’);处理时区应优先使用.toISOString()和Intl.DateTimeFormat;比较日期需用时间戳(.getTime());复杂操作可选date-fn…

    2025年12月20日
    000
  • JavaScript中的URL操作与处理有哪些实用API?

    URL API 提供解析、构造和修改网址的能力,通过 new URL() 可访问协议、主机、路径等部分;结合 searchParams 和 URLSearchParams 精准操作查询参数;支持相对路径与基础 URL 合并;自动处理编码,避免手动拼接错误。 JavaScript 提供了多种内置 AP…

    2025年12月20日
    000
  • Prisma Client 扩展中异步计算字段的处理策略

    本文探讨了Prisma Client result 扩展中计算字段处理异步操作的限制。由于 compute 函数是同步的,直接 await 异步函数会导致返回 Promise。文章提供了两种解决方案:一是让 compute 返回一个可异步调用的函数,待需要时再解析;二是利用 model 扩展定义自定…

    2025年12月20日
    000
  • 解决 React-Toastify 升级后通知不渲染问题

    本文旨在解决 React-Toastify 从 v7 升级到 v9 后通知不渲染的问题。通过分析代码变更和社区反馈,我们发现该问题通常源于特定版本(如 v9.0.3)的已知 bug。解决方案是升级到修复了这些问题的版本(如 v9.1.2 或更高),并结合最佳实践,确保 ToastContainer …

    2025年12月20日
    000
  • 如何利用IndexedDB在浏览器端构建强大的客户端数据库?

    IndexedDB是浏览器内置的NoSQL数据库,支持事务、索引和异步操作,适用于存储大量结构化数据。通过indexedDB.open创建或打开数据库,onupgradeneeded事件中定义对象仓库和索引,版本号控制schema变更。使用createObjectStore设置主键,createIn…

    2025年12月20日
    000
  • JavaScript中如何优雅地处理异步操作的错误?

    使用 try/catch 捕获 async 函数错误,封装高阶函数复用处理逻辑,结合 Promise 链的 catch 和全局 unhandledrejection 事件监听,构建完整异步错误处理机制。 在JavaScript中处理异步操作的错误,关键在于统一、可读性强且能覆盖各种异常场景。使用现代…

    2025年12月20日
    000
  • PHP多步表单数据持久化与导航:基于会话和GET/POST请求的实现

    本教程详细介绍了如何利用PHP会话管理和GET/POST请求构建一个健壮的多步表单。通过在服务器端存储用户输入数据并使用重定向机制处理页面导航,我们确保了数据在不同步骤间的持久性,同时支持浏览器回退和刷新功能,显著提升了用户体验和表单的稳定性。 引言:多步表单的挑战 在现代web应用中,多步表单(s…

    2025年12月20日 好文分享
    000

发表回复

登录后才能评论
关注微信