Kon*_*ner 8 javascript api post github github-api
我的 Web 应用程序的用户应该将错误报告作为 GitHub 问题提供,并带有预先生成的标题和正文。
这对于小型机构使用 GET 非常好:
const title = getLastErrorTitle();
const body = getAllTheLogMessages();
window.open(`https://github.com/theuser/therepo/issues/new?title=${encodeURIComponent(title)}&body=${encodeURIComponent(body)}`);
Run Code Online (Sandbox Code Playgroud)
如果用户已登录,GitHub 会向用户显示一个新问题,标题和正文已填写,完美。如果没有,GitHub 会提示用户登录,下次再运行。
但是,如果正文太大,则 GET 请求会因为 URL 变得太长而失败。
在查阅手册后,我尝试对 POST 做同样的事情,但我从 GitHub 获得了一个 404 并带有以下测试请求(为简洁起见是 jQuery):
$.ajax({
type: "POST",
url: "https://api.github.com/repos/theuser/therepo/issues",
data: data = {title: "Test", body: "Test Body"},
});
Run Code Online (Sandbox Code Playgroud)
我的怀疑是,GitHub API 的设计并没有考虑到我的用例,但是 POST 总是需要身份验证并一次性创建完整的问题,而不会让用户像使用 GET 那样事先更改它。
如何将 GET 方法的功能转移到 POST 方法?我只希望 GitHub 向当前登录浏览器的用户显示一个预填充的问题,而不需要令牌。
你不能。否则,这将是一个重大的 CSRF 漏洞。
但是,您可以使用 OAuth 身份验证,这将允许您的应用程序使用某些功能:https ://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/
<a>或者简单地,使用以下模式将用户重定向到带有一些自动内容的新问题页面(例如,带有简单的 HTML 链接):
https://github.com/{theUser}/{theRepo}/issues/new?body={theContentYouWhant}&title={theTitleYouWhant}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |