2017-01-23 2 views
2

Я пытаюсь использовать GitHub Javascript API, но не могу выполнить аутентификацию с помощью моего ключа API. API Docs сказать, что я могу использовать:Как выполнить проверку подлинности с помощью GitHub с помощью ключа API?

{ 
    username: 'my-username', 
    password: 'my-password' 
    // , token: 'or an optional oAuth token' 
} 

Но я хотел бы использовать свой ключ API вместо этого, так же, как я могу сделать с curl из командной строки. (К примеру)

curl --user "$user:$api_key" --include --request DELETE "https://api.github.com/repos/$user/$repo/labels/enhancement" 

Я попытался с помощью моего ключа API как token но это не работает.

Использование API-ключа для доступа к GitHub через API-интерфейс Github API не поддерживается? Это было бы странно.

ответ

1

Хорошо так получается, что я звоню мой ключ API это то же самое, как personal access token и я просто путают, потому что

import GitHub from 'github-api' 

const gh = new GitHub({ 
    token: 'MY-PERSONAL-ACCESS-TOKEN-OBTAINED-FROM-github.com/settings/tokens' // real token redacted obviously 
}) 

const me = gh.getUser() 
console.log('me', me) 

был выплевывая

me User { 
    __apiBase: 'https://api.github.com', 
    __auth: 
    { token: '970818535b841883ff2735fe127d289032970389', 
    username: undefined, 
    password: undefined }, 
    __AcceptHeader: 'v3', 
    __authorizationHeader: 'token MY-PERSONAL-ACCESS-TOKEN-OBTAINED-FROM-github.com/settings/tokens', 
    __user: undefined } 

и я интерпретация __user: undefined означает, что аутентификация не работает.

Однако, если я на самом деле пытаются затем добавить

me.listNotifications().then(
    notifications => console.log('notifications', notifications), 
    err => console.log('error', err) 
).catch(err => console.log('fatal', err)) 

tadah это работает.

Если я кидаю в мусорных лексемах new GitHub не жалуюсь (потому что предположительно это на самом деле не уходящее в GitHub, чтобы сделать авторизацию на тот момент, как я сначала подумал), но .listNotifications() ли отклонена с ошибкой 401.

Итак, это разрешило мое замешательство.

Смежные вопросы