GitHub OAuth in lua
Я работаю над библиотекой в LUA для приложения для iPad под названием Codea. Я пытаюсь выяснить, использовать OAuth для GitHub Gists. Единственная часть, которую я не могу понять, это как получить токен Auth через код. Я использовал curl в терминале, чтобы получить себе токен, но это, похоже, слишком много для других пользователей.
Я прочитал github api docs несколько раз, но не могу понять, как получить токен программно. Я пытался дублировать метод, который я использовал для GET и POST, но он, похоже, не работает. Я не уверен, как передать имя пользователя и пароль. Я создаю таблицу с необходимыми параметрами, а затем кодирую ее в 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)
1 ответ
Области выходят, но только в 4 квартале 2013 года.
См. " Грядущие изменения OAuth" (октябрь 2013 года, Тим Клим - тклем):
Начиная с сегодняшнего дня, мы возвращаем предоставленные области как часть ответа access_token.
Например, если вы делаетеPOST
сapplication/json
MIME-тип вы увидите дополнительное поле для предоставленных областей.
{
"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a",
"scope":"repo,gist",
"token_type":"bearer"
}
Прямо сейчас эти области будут идентичны тем, которые вы запрашивали, но мы переходим к набору функций, который позволит пользователям GitHub редактировать свои области, эффективно предоставляя вашему приложению меньший доступ, чем вы первоначально запрашивали.
Вы должны знать об этой возможности и соответствующим образом корректировать поведение своего приложения.
Некоторые вещи, на которые следует обратить внимание и иметь в виду:
Большинство сторонних приложений, использующих GitHub OAuth для идентификации пользователей, имеют лучший успех при принятии, начиная с запроса минимального доступа, с которым приложение может сойти с рук.
Что-то вроде без прицелов или простоuser:email
очень вменяемыйВажно обрабатывать ошибки, когда пользователи предпочитают предоставлять вам меньше доступа, чем вы изначально запрашивали.
Теперь, когда мы выходим наaccess_token
В ответ приложения могут предупредить или иным образом связаться со своими пользователями, что они увидят ограниченную функциональность или не смогут выполнить некоторые действия.Приложения всегда могут отправить пользователей обратно через поток, чтобы получить дополнительное разрешение, но не забывайте, что пользователи всегда могут сказать "нет".