2

我正在为一个名为 Codea 的 ipad 应用程序在 LUA 中开发一个库。我正在尝试将 OAuth 用于 GitHub Gists。我无法弄清楚的唯一部分是如何通过代码获取 Auth 令牌。我在终端中使用 curl 为自己获取令牌,但这对其他用户来说似乎需要做很多工作。

我已经多次阅读了 github api 文档,但我不知道如何以编程方式获取令牌。我试图复制我用来获取和发布要点的方法,但它似乎不起作用。我不确定如何传递用户名和密码。我正在创建一个包含所需参数的表,然后将其编码为 json。我尝试的所有操作都会出现 404 错误或 500 错误。谢谢大家。

local url = "https://api.github.com/authorizations"
local d = {}
d.scopes = {"gist"}
d.note = "AutoGist Codea"
projectAuth = json.encode(d)

opts = { data = projectAuth }
opts.method = "POST"
opts.headers = {Authorization = "basic " .."username:password"}
http.request(url,successCallback,failedCallback,opts)
4

1 回答 1

0

Scopes 即将推出,但仅限于 2013 年第四季度。

请参阅“即将发生的 OAuth 更改”(2013 年 10 月,由Tim Cleam - tclem 撰写):

从今天开始,我们将返回已授予的范围作为 access_token 响应的一部分。
例如,如果您POST使用application/jsonmime-type 创建 a,您将看到授予范围的附加字段。

{
  "access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a",
  "scope":"repo,gist",
  "token_type":"bearer"
  }

目前,这些范围将与您请求的相同,但我们正在朝着允许 GitHub 用户编辑其范围的功能集发展,从而有效地授予您的应用程序比您最初请求的更少的访问权限
您应该意识到这种可能性并相应地调整您的应用程序行为。

一些需要注意和牢记的事情:

  • 大多数使用 GitHub OAuth 来识别用户的第三方应用程序在采用方面取得了最大的成功,首先是请求应用程序可能获得的最低访问权限。
    像没有范围或只是user:email非常理智的东西。

  • 处理用户选择授予您的访问权限少于您最初请求的访问权限的错误情况非常重要。
    现在我们在access_token响应中显示了授予的范围,应用程序可以警告或以其他方式与其用户通信,他们将看到功能减少或无法执行某些操作。

  • 应用程序始终可以通过流程再次将用户送回以获得额外的权限,但不要忘记用户始终可以拒绝。

于 2013-10-05T08:51:16.223 回答