2017-01-23 6 views
2

Ich versuche, die GitHub Javascript API zu verwenden, kann aber nicht mit meinem API-Schlüssel authentifizieren. Die API Docs sagen, dass ich verwenden können:Wie authentifiziere ich mich mit einem API-Schlüssel gegen GitHub?

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

Aber ich würde meine API-Schlüssel wie stattdessen verwenden, so wie ich mit curl von der Kommandozeile tun kann. (Zum Beispiel)

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

habe ich versucht, meinen API-Schlüssel als token verwenden, aber das funktioniert nicht.

Wird die Verwendung des API-Schlüssels für den Zugriff auf GitHub über den Github-API-Wrapper nicht unterstützt? Das wäre verrückt.

Antwort

1

Okay, so stellt sich heraus, was ich meine API Key rief ist das gleiche wie das personal access token und ich war nur verwirrt, weil

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) 

wurde

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 } 

spuckt und ich war interpretieren __user: undefined zu bedeuten, dass die Authentifizierung nicht funktionierte.

Allerdings, wenn ich versuche tatsächlich dann Zugabe

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

tadah es funktioniert.

Wenn ich werfe in einem Müll Token new GitHub nicht beschweren (weil vermutlich ist es nicht tatsächlich zu GitHub abgehend an diesem Punkt die Auth zu tun, wie ich zuerst gedacht), aber die .listNotifications() nicht mit einem 401 Fehler abgelehnt bekommen.

Also, das ist meine Verwirrung gelöst.

Verwandte Themen