如何通过 ID 检查 Scratch 项目是否被共享?

2024-03-23

我不希望很多人知道这一点,但是有没有办法检查 Scratch 项目 ID 是否属于共享项目?例如,项目 ID3是一个实际项目,但不共享 - 而 ID399293697是共享的。那么我如何使用 JavaScript 来查看这些是否共享呢?


我搜索了有关 Scratch API 的 wiki 文章 https://en.scratch-wiki.info/wiki/Scratch_API,但这没有帮助。 那里提到的唯一有用的端点需要您知道项目的所有者。

通过实验,我发现这些终点是有效的。

  • https://api.scratch.mit.edu/projects/3 https://api.scratch.mit.edu/projects/3
  • https://api.scratch.mit.edu/projects/399293697 https://api.scratch.mit.edu/projects/399293697

第一个返回 HTTP 404(未找到),第二个返回 HTTP 200(正常)以及有关项目的详细信息。

Notes:

  • 我认为没有办法区分非共享项目和不存在的项目;它们都产生 404。
  • 我认为您无法从 Web 浏览器中运行的 JavaScript 直接访问这些端点,因为同源策略 https://en.wikipedia.org/wiki/Same-origin_policy。在您自己的浏览器上,您可以暂时关闭它 https://stackoverflow.com/questions/3102819/disable-same-origin-policy-in-chrome。对于更具结构性的解决方案,请使用CORS代理 https://stackoverflow.com/questions/43262121/trying-to-use-fetch-and-pass-in-mode-no-cors.

下面是一个 JavaScript 示例,用于测试单个项目 ID 是否存在。它用yacdn.org https://ovsoinc.github.io/yacdn.org/,众多之一免费 CORS 代理 https://nordicapis.com/10-free-to-use-cors-proxies/.

这只是一个概念证明。我不能保证它适用于大规模查询;许多免费代理会限制您的流量。托管您自己的代理可能会更好。

function TestProjectId() {
    const id = document.getElementById('projectId').value;
    const url = 'https://yacdn.org/proxy/https://api.scratch.mit.edu/projects/' + id;
    fetch(url, {method: 'HEAD'})
        .then(response => { document.getElementById('answer').innerHTML = response.ok; });
}
<input type="text" id="projectId" value="399293697" />
<button onclick="TestProjectId()">Test it!</button>
<div id="answer">(answer will appear here)</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 ID 检查 Scratch 项目是否被共享? 的相关文章

  • Angular2 - 在 SystemJS 中导入第 3 方 javascript

    由于某种原因 fileSaver 没有被映射 angular2 jwt 工作正常 I did npm install file saver save获取文件保护程序 然后按如下方式引用它 我有一个 gulp 任务将 js 文件移动到 lib
  • 修复 JSLint“意外的‘this’。”错误?

    我试图让以下代码成为符合 jslint 标准 http jslint com 但我陷入以下两个错误 本来应该看到一个声明 结果却看到了一个块 and 意想不到的 这个 我应该对我的代码进行哪些更改才能使 JSLint 满意 var pvAc
  • 如何在 Javascript 中获取时区名称(PDT、EST 等)? [复制]

    这个问题在这里已经有答案了 使用 Javascript 有没有办法根据用户的设备获取用户的时区名称 PDT EST 等 我尝试过的代码 const timezone jstz determine const userTimezone tim
  • javascript - 动态变量

    您好 我正在尝试创建动态变量 但它说 变量 v0 到 v5 未定义 td each function i eval var v i this html 任何帮助将不胜感激 这听起来是个坏主意 你有什么理由不能这样做吗 var tdHtml
  • 为什么 foo.hasOwnProperty('__proto__') 等于 false?

    var foo bar 5 Why is foo hasOwnProperty proto 等于false 它不能来自原型链中更高层的任何对象 因为它是特定于这个对象的 EDIT 有些答案说它已开启Object prototype 但我不明
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • Firefox(仅限)动态表单操作不起作用

    控制台为操作属性返回空白 我已经移动了 file upload attr action io cfm action updateitemfile item id agenda modal attr data defaultitemid 周围
  • 定时器内嵌套异步等待 - 不返回所需的值

    我必须使用 Mocha 和 chai 测试来测试端点的响应 下面是相同的代码 async function getData userId let response let interval setInterval async gt resp
  • Ng Bootstrap 日期范围选择器 [markDisabled] 不适用于输入

    我正在尝试禁用某些日期ng 引导范围选择器 https ng bootstrap github io components datepicker overview 目前 我在弹出窗口中有一个范围选择器 并且我正在使用 markDisable
  • History.pushState和页面刷新

    我开始研究 HTML5 新历史 API 不过 我有一个问题 如何处理页面刷新 例如 用户单击一个链接 该链接由 js 函数处理 该函数 异步加载页面内容 使用history pushState 更改URL 用户刷新页面 但是服务器上当然不存
  • 使用 Jquery 更改 css 属性时的事件检测

    有没有办法检测元素的 显示 css 属性是否更改 是否更改为无 块或内联块 如果没有的话有什么插件吗 谢谢 Note 突变事件 https developer mozilla org en US docs Web Guide Events
  • 如何使表格单元格的最小宽度为 3 位数字?

    如何使表格中的每个单元格的最小宽度为 3 位数字且不会更大 现在我正在硬编码min width 但我不喜欢硬编码一个值 因为我将来可能想更改字体 如果需要Javascript也没关系 table border 1 tr td 1 td td
  • 主干集合排序

    我制作了我的第一个主干应用程序 但在集合排序方面遇到了一些问题 使用这个后 var SortedFriends MyFriends sortBy function friend return friend get uid console l
  • 防止 Bootstrap IE 下拉列表在滚动条单击时关闭

    在 IE 中 单击下拉菜单滚动条时 下拉菜单将关闭 当您使用鼠标滚轮滚动它时 效果很好 这是代码层链接 https www codeply com go Uh8qadr3q2 https www codeply com go Uh8qadr
  • 如何制作实时jquery效果?

    我想制作一个实时提要阅读器 并且我想要一个解决方案 使新项目无需刷新页面即可出现 并且具有像friendfeed一样的滚动效果 你可以在这里看到我在说什么 http www vimeo com 4029954 http www vimeo
  • 将罗马数字转换为阿拉伯数字--recursiv

    我是 JavaScript 新手 正在网站的帮助下学习https www jshero net koans roman1 html https www jshero net koans roman1 html 本练习是编写一个转换器 将罗马
  • 为什么 [].push([]) 返回 1? [复制]

    这个问题在这里已经有答案了 为什么这会返回 1 push outputs 1 push 返回数组的新长度 one push two returns 2 array length is 2 one two push something ret
  • 将响应式网格布局转换为 Plotly Dash

    我是一个非常活跃的 Dash 用户 我开始发现 Dash 使用中存在很多限制 并且我意识到有关如何将组件转换为 Dash 的信息 内容绝对有限 并且示例过时且非常简单 并且我对 Javascript 或 React 几乎没有任何了解 我完全
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同
  • CSS 未使用 req.params 或其他内容加载

    我对节点 表达等非常陌生 我制作了一个博客应用程序 但遇到了问题 我正在使用 mongoose node express 和 ejs 当我打电话时 router get posts function req res Post find fu

随机推荐

  • 如何通过 AJAX 在 JQuery Accordion 中加载内容

    我有一个加载大量数据的 jquery 手风琴 该手风琴是通过查询数据库生成的 我的问题 有没有办法在单击手风琴的特定元素之前不加载内容 基本上 我想将 jquery tab ajax 内容加载的功能复制到手风琴 我正在使用 jquery u
  • 在 aiohttp Web 服务器中使用 ClientSession 的正确方法是什么?

    我有一个网络服务器 大致如下 async def websocket handler request ws web WebSocketResponse await ws prepare request cards async for msg
  • 当动画属性初始化 false 时,React Native ActivityIndi​​cator 不显示

    我正在玩 React Native 并得到了一个奇怪的行为 当我尝试展示一个活动指示器对于Android设置其动画化属性为 trueshowProgress如果变量以 false 启动 则变量处于不起作用的状态 在下面的示例中 如果 Act
  • Bootstrap 4 activate.bs.scrollspy 事件未触发

    我正在使用 Bootstrap v4 0 0 我已经包含了必要的 JavaScript 文件 jQuery popper 和 Bootstrap 以及必要的 CSS 文件 这是 HTML div class collapse navbar
  • Typescript 类型别名的默认值

    Typescript 类型别名可以支持默认参数吗 例如 export type SomeType typename string strength number radius number some func Function some o
  • 如何在pyqt中使PyQt窗口状态最大化

    我在我的应用程序中使用 PyQt4 作为 GUI 我想知道如何让我的窗口默认最大化 我瞪大了眼睛 但没有找到替代品 我尝试使用下面的代码 但它不是最大化 而是将窗口大小调整为桌面屏幕大小 但我需要当我们按下窗口标题栏右侧的最大化按钮时我们将
  • 如何以允许在任何索引处快速插入的方式表示一行音符?

    为了 乐趣 并学习函数式编程 我正在 Clojure 中开发一个程序 该程序使用来自称为 Westergaardian 理论 的音乐理论的思想进行算法创作 它生成音乐线 其中线只是由一系列音符组成的单个五线谱 每个音符都有音高和持续时间 它
  • 内容被阻止,因为它没有由 Outlook 插件中的有效安全证书错误签名

    我开发了一个 Outlook 插件 需要在执行作业之前打开身份验证对话框 我面临两个我认为相互关联的问题 尽管该加载项在 Edge 和 Chrome 中运行良好 但该对话框不会出现在 IE 中 我在控制台中也没有看到任何与此相关的错误 I
  • 如何获取Yii2和DbManager中特定角色的用户?

    如何在RBAC中获取Yii2和DbManager中特定角色的用户 请介绍一些用于用户管理和角色管理的API 我搜索并阅读Yii2 指南 http www yiiframework com doc 2 0 guide index html但我
  • Android 持久化有什么用?

    有什么用安卓 持久 真 特性
  • jQuery JSON ajax 请求上的空请求正文

    服务器 在 Heroku 上运行的 Django 1 4 所有请求都是 HTTPS 我的 ajax 调用如下所示 var data username form find input name username val email form
  • SQL Server FOR XML Path创建重复节点

    我想使用 SQL Server 2012 生成以下输出
  • Apache 和 git-http-backend

    我目前正在使用 Apache 2 4 7 的 Ubuntu LTS 14 04 机器上设置一些 git 存储库 这是阿帕奇的配置 SetEnv GIT PROJECT ROOT var www html git SetEnv GIT HTT
  • UnsafeNativeMethods.IWebBrowser2.Navigate2 中的 HRESULT E_FAIL

    我们在 Office 2007 中使用 NET 3 5 开发了一个复杂的应用程序 在某些表单中 我们使用 WebBrowser 控件导航到 HTML 页面 问题在于 在某些机器上 当控件调用 Navigate 方法时 它会引发异常 错误 H
  • 如何在子窗体打开时冻结父窗体

    我遇到的情况是 在某些情况下 我需要打开另一个表单并保持该表单的焦点 modal true 当它们不聚焦并且关闭时 父表单上的控件将使用可能已更改的可能数据进行刷新 最初我有一个方法可以DoEvents虽然子表单已打开 但它导致多个子表单无
  • 单击“确定”后如何停止 sweetalert 滚动到顶部?

    我在用着甜蜜警报2 https sweetalert2 github io当用户在我的网站上发表评论时的脚本 它会向下滚动到他们的评论并弹出甜蜜警报 但是当他们在甜蜜警报框中单击 确定 时 它会滚动回顶部 从我读到的内容来看 我需要某种预防
  • 禁用 Alamofire iOS 缓存

    我试图在使用 Alamofire 发出 iOS 请求时禁用缓存 当我尝试向服务器发出请求 然后以其他用户身份进行身份验证时发出请求时 我会收到 304 状态代码 我已经尝试过一切这个链接 https stackoverflow com qu
  • 具有 HTML 支持的 Angular Material 工具提示

    我只是想知道有没有好的第三方angular material tool tip plugin在 的支持下HTML 我在用Material design with Angular 7仅 无引导程序 虽然我正在使用ng2 工具提示指令 http
  • 函数超时(Windows)?

    我正在尝试为特定功能实现超时 我检查了SE中的许多问题 但找不到任何适合我的问题的解决方案 因为 我在 Windows 中运行 python 超时应用于我无法控制的Python函数 即它是在已经设计的模块中定义的 python函数不是子进程
  • 如何通过 ID 检查 Scratch 项目是否被共享?

    我不希望很多人知道这一点 但是有没有办法检查 Scratch 项目 ID 是否属于共享项目 例如 项目 ID3是一个实际项目 但不共享 而 ID399293697是共享的 那么我如何使用 JavaScript 来查看这些是否共享呢 我搜索了