Freecodecamp: 根据论坛功能类似的项目替换Camper排行榜项目

创建于 2018-06-05  ·  45评论  ·  资料来源: freeCodeCamp/freeCodeCamp

描述您的问题,以及-如果可能的话-如何重现它

Camper排行榜API如下所示损坏:

将链接添加到有问题的页面

https://fcctop100.herokuapp.com/api/fccusers/top/recent
https://fcctop100.herokuapp.com/api/fccusers/top/alltime

告诉我们您的浏览器和操作系统

  • 浏览器名称:Chrome
  • 浏览器版本:67
  • 作业系统:Windows 7

如果可能,请在此处添加屏幕截图

help wanted learn projects-frontend

最有用的评论

@ Em-Ant,感谢您的快速回复! 您的Glitch API端点运行正常,因此,我将使用上面的用户故事和您的链接来更新项目的描述。

所有45条评论

@tchaffee @tbushman @ Em-Ant我们可以检查并在Glitch上找到替代方法吗?

@raisedadead我不知道谁开发了这些API,是否还有其他选择。 在我的时间之前。 也许这是您将来希望在FCC域上托管的东西,因此它始终可用,并且不受第三方的控制吗? 让我知道这里还有什么可以帮助的。

我们有该应用程序的源代码吗? 我记得它可以定期清除gitter或fcc配置文件页面。 我不知道是否有可能发生故障。 为什么freecodecamp不公开具有核仁巧克力饼排名的api端点?

我们有该应用程序的源代码吗?

https://github.com/roelver/fcctop100

如果有人可以给我一些基本的分析,如果代码足够好并且需要一些修补,我将把它带入我们的组织中,我们可以将其放在Glitch上吗?

为什么freecodecamp不公开具有核仁巧克力饼排名的api端点?

它只会强调我们在高峰时间获得的800多个当前并发。

我很乐意取代挑战。 @QuincyLarson您有什么想法吗?

@raisedadead排行榜项目不再是必需项目-我们已经将其移至面试准备中。 不过,如果有人可以解决该问题,那将是很好的。 我认为排行榜应用程序带来的压力不会那么大-过去我们有成千上万个此类排行榜,它们似乎并没有太大的影响。

不过,我们应该等到新的开放API启用后再尝试解决此问题。

我看了一下代码,我知道它是如何工作的。 它曾经刮过一个垃圾室以获取露营者的用户名,然后获得了有关每个露营者访问其freecodecamp个人资料页面的信息。 目前,此操作无效,因为该密闭室关闭了,并且作者的gitter api密钥(在源中进行了硬编码...)已过期/被阻止。

如果有一种方法可以定期(每天或每周一次)从freecodecamp直接访问一些有关排名的信息,那么在出现故障时为其构建替换项会容易得多。

@QuincyLarson,我认为它仍在旧版证书列表中:

image

@raisedadead好点-我忘记了这个。 我们绝对需要使该项目重新运行。

@ Em-Ant感谢您描述问题。 这是我建议的工作-我们将这个项目切换为专注于论坛。

没有API密钥,人们可能会做的就是使用我们论坛的API显示近期活动的线程:

https://forum.freecodecamp.org/latest.json

我们将需要为此构建一个全新的演示并提出新的用户案例,但其功能类似于旧的排行榜项目。

有人对此有兴趣吗?

@QuincyLarson我已经开始着手进行可能的替代演示,然后我可以写一些用户故事,尽管似乎可能无法启用CORS标头来获取该API提要?

@ jgibson02您可能进行的替换演示是否取得了任何进展?

我仍然支持使用开放的API(例如forum.freecodecamp.org)将该项目的主题更改为某种东西。 但是,如果您在此方面取得了进展,我将有兴趣看到它:)

从CodePen发出请求时,我在从https://forum.freecodecamp.org/latest.json API检索数据时遇到问题。 似乎需要在该API上启用CORS,以便营员能够在该处使用它。 现在,我将继续通过下载JSON副本进行演示。

@Bouncey @raisedadead在我们论坛的API上启用CORS的安全注意事项是什么?

如果我们决定继续进行下去,这似乎是对Discourse的相对简单的修复: https :

而且,只要您能够将其范围限定为GET请求,并且对公开的端点有选择性。

是我使用离线下载的JSON副本制作的演示。 您认为这与您希望了解的整个用户故事相吻合吗?
如果是这样,我可以开始编写一些细分的用户故事和说明。

以下是一些可能的说明和用户案例:

带回家的项目-建立FreeCodeCamp论坛主页

  • 目标:构建一个功能类似于此的CodePen.io应用程序: https : //codepen.io/jgibson02/full/BVvbRX/
  • 完成以下用户案例。 使用所需的任何库或API。 给你自己的个人风格。
  • 用户故事:我可以在freeCodeCamp论坛上看到最新的帖子列表。
  • 用户故事:对于每个主题,我可以看到标题和指向最近发布的用户的链接列表。
  • 用户故事:我可以看到每个主题的回复和查看次数,以及该主题上次激活的时间的时间戳。
  • 提示:要获取30个最新的论坛帖子: https :
  • 如果遇到问题,请记住使用Read-Search-Ask。
  • 完成后,单击“我已完成此挑战”按钮,并包含指向您的CodePen的链接。
  • 您可以通过与Facebook上的朋友共享项目来获得有关项目的反馈。

@ jgibson02太棒了! 感谢您帮助创建这些出色的用户故事。 我将在CORS问题上与@Bouncey合作。

@QuincyLarson在CORS问题上有任何进展吗?

你好
我已经创建了一个LeaderBoard,现在由于api问题而被破坏了。
我喜欢原始的用户故事:
用户故事:我可以看到一张过去30天内获得最多布朗尼积分的freeCodeCamp露营者表格。
用户故事:我可以看到他们在过去30天内获得了多少布朗尼积分,以及他们总共获得了多少积分。
用户故事:我可以在根据过去30天内获得的布朗尼积分与总共获得的布朗尼积分排序列表之间进行切换。

不再有核仁巧克力饼点,但有喜欢的地方。 而且它还没有真正细分为每月。 看起来最多的日子是288。

除了链接到最新帖子,我们还可以专注于露营者的名字,以及该人在30天的时间内无休无止地收到多少“赞”(而不是布朗尼积分)吗?

https://www.freecodecamp.org/forum/directory_items.json?period=all&order=likes_received.json

是否有人在为Camper排行榜修复此api?

如果没有更好的解决方案,我们可以绕过cors问题,在故障上建立代理(我对此非常有经验...),我可以将请求的范围限制为仅允许我和方法,并在必要时进行任命。 它应该很容易构建。 让我知道您是否要我这样做。

@ Em-Ant是-听起来不错。

请保持联系,并告知我们是否可以采取任何措施。

api端点: https :
测试项目(从@ jgibson02派生): https : //codepen.io/Em-Ant/pen/modqWP

如果您愿意,我们可以将其公开在您拥有的自定义域(例如freecodecamp子域)上。

让我知道是否还可以,是否还有其他需要。 如果这是一个好的解决方案,我将授予camperbot编辑权限,以将所有权转让给freecodecamp。

由于@ EM-ANT已做好这个新的API端点forum的数据,我想它的时间来改变所建议的用户故事,这里@ jgibson02?

在测试项目的第67行有错误:Uncaught ReferenceError:未定义样式
在/Em-Ant/pen/pen.js:67

对于使用建议的用户案例,我确实同意@nuhman

修复了ReferenceError(使用我的原始笔),但是您认为我们应该在用户故事中进行哪些更改?

嗨,谢谢你。
看来我们没有排序,是由最新主题提出的。
它对论坛页面非常有效。

我只是在排行榜上努力工作,而无法炫耀却是可耻的。 即使没有核仁巧克力饼,我也很想看看谁发布了最新的文章,谁发布了最多的文章,以及这些文章的链接以及用户个人资料。

我喜欢看到主题被浏览了多少次。

尝试使用https://www.freecodecamp.org/forum/latest.json链接获取数据时,跨域读取阻止(CORB)也出现错误。 _ {mode:'no-cors'} _无效。
是否存在任何其他解决方案可为排行榜获取数据(而不是对其进行硬编码)?

我没有问题。 您正在使用哪个浏览器?

我没有问题。 您正在使用哪个浏览器?

谷歌浏览器
版本73.0.3683.86(官方内部版本)(64位)

这对我来说是新的。 但是我确实找到了这个建议作为可能的解决方案...

https://stackoverflow.com/questions/54701399/how-to-fix-cross-origin-read-blocking-corb-blocked-cross-origin-response-with

谢谢。 但是,如果仅在浏览器中禁用安全策略,则无法解决其他浏览器/用户的问题。 我看到了设置标头的解决方案,但是由于只有客户端,所以我无法在Codepen(我的排行榜)上实现它。

对不起。 我还没有看到足够的东西来理解它。 我了解CodePen解决了可能的CORS问题,但是CORB对我来说是新的。

您是否可以转到实际的API端点? 还是仅来自LeaderBoard?

通过直接链接,我看到了json-data。 当我尝试从codepen的freecodecamp.org获取json时,麻烦就增加了。

我在Codepen上检查了我的其他笔,这些笔从其他站点(有rawgit.com,glitch.com,wikipedia.org,ipinfo.io和github.com)获取数据,并且它们可以正常工作。 因此,问题出在freecodecamp-json上。 这可能取决于codepen的设置,但是我还没有找到他们支持的共识。

哎哟。 @ jgibson02您以前看过这种情况吗?
如果是这样,您知道解决方法吗?

@ColorizeMySky您之前是否尝试过@ Em-Ant的终点?
https://buttercup-island.glitch.me/latest

也许这行得通吗?

https://buttercup-island.glitch.me/latest

也许这行得通吗?

是的,非常感谢。 它从故障中获取带有论坛数据的json。

我已经更新了CodePen,以使用https://buttercup-island.glitch.me/latest上的@ Em-Ant API来避免CORS问题。
@QuincyLarson您可以使用glitch.me重定向到Freecodecamp的域吗? 如果是这样,也许准备将其重新整合到课程中。

@scissorsneedfoodtoo你能接受这个吗? 我们需要做的就是创建一个像上面提到的那样的故障项目,作为一种解决方法,并更新挑战种子以在说明中使用它?

@raisedadead ,当然,我会正确的

如果您不想,则不需要进行其他故障项目。 那
一个人已经在我和camperbot之间共享了所有权,因此您可以编辑
它。

Il gio 2019年4月4日,12:13 Kristofer Koishigawa [email protected] ha
字幕:

@raisedadead https://github.com/raisedadead ,当然,我会正确处理的

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/freeCodeCamp/freeCodeCamp/issues/17450#issuecomment-479836966
或使线程静音
https://github.com/notifications/unsubscribe-auth/AMWwVve4x2DPL4_ApR55oakeZHbBGlGGks5vddAxgaJpZM4UbaVj

@ Em-Ant,感谢您的快速回复! 您的Glitch API端点运行正常,因此,我将使用上面的用户故事和您的链接来更新项目的描述。

@ Em-Ant,在您的故障API上,看不到如何获取到相应主题的链接。 可能吗?

@ColorizeMySky我的故障api将请求代理到https://www.freecodecamp.org/forum/latest.json,因此您将获得完全相同的响应。 它仅将必要的CORS标头添加到原始响应中。

我快速浏览了响应结构,看到了两个部分:一个是“用户”,另一个是“主题”。 您可以获取帖子的URL,添加论坛的基础URL,以及主题条目的属性“ slug”。

谢谢大家的帮助。 我设法用新的API完成了这个项目,新的API非常适合替换旧任务。 我可以拿排序,添加其他信息和图像,链接等。https://codepen.io/Colorize_my_sky/full/aMxRRq

恭喜@ColorizeMySky ! 这看起来很棒,而且反应灵敏。

此页面是否有帮助?
0 / 5 - 0 等级