2015-10-28 5 views
8

Ich habe versucht, diese Post-Anfrage an die GitHub-API für die letzten Tage zu machen, aber leider kommt die Antwort zurück als "schlechte Nachricht"Erstellen einer Post-Anfrage an Github API für das Erstellen von Problem funktioniert nicht

hier ist das Stück Code, den wir in der Post-Anforderung senden, mit hTTPS-Anforderung in Knoten -

Dies ist die Post-Daten

var issueData = JSON.stringify({ 
    "title":title, 
    "body":comment 
}); 

Dies ist die Optionsdatei

var options = { 
    host: 'api.github.com', 
    path: '/repos/sohilpandya/katasohil/issues?access_token='+sessions.token, 
    headers: { 
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0', 
    }, 
    method: 'POST' 
}; 

Dies ist die https

anfordern
var requestaddIssue = https.request(options, function(responseFromIssues){ 
    responseFromIssues.setEncoding('utf8'); 
    responseFromIssues.on('data', function(chunk){ 
    console.log('>>>>chunk>>>>>',chunk); 
    issueBody += chunk; 
    }); 
    responseFromIssues.on('end',function(issueBody){ 
    console.log(issueBody); 
    }); 
}); 
requestaddIssue.write(issueData); 
requestaddIssue.end(); 

ich einen anderen Ansatz versucht haben, in dem der Authentifizierungstoken für den Benutzer in der Kopfzeile ist als

'Authentication': 'OAuth '+ sessions.token (where we are storing token inside sessions) 

Aber die Brocken Antwort scheint immer wieder zu kommen Folgendes im Konsolenprotokoll.

{ 
"message": "Not Found", 
"documentation_url": "https://developer.github.com/v3/issues/#create-an-issue" 
} 

Ich habe das gleiche in Apigee versucht und es scheint in Ordnung zu funktionieren und kehrt zur richtigen Antwort zurück. Hoffentlich kann jemand den kleinen Fehler im obigen Code finden, der diesen fehlerhaften Nachrichtenfehler verursacht.

+0

Haben Sie diese bekommen mit anderen Anfragen zu arbeiten? Haben Sie auch überlegt, ein Modul zu verwenden, um Anfragen wie [request] (https://www.npmjs.com/package/request) oder einfach nur [node-github] zu erstellen (https://github.com/mikedeboer/ Knoten-Github)? – grimurd

+0

@GrimurD Ich habe es mit einer Get-Anfrage arbeiten, einige Benutzerdaten abrufen. Normalerweise benutze ich das Anfragemodul, versuche es aber zu lösen, nur um den Fehler zu finden. –

+0

Sie sollten wahrscheinlich die ausgehende Anfrage mit etwas wie [Fiddler] (http://www.telerik.com/fiddler) protokollieren, um sicherzustellen, dass die Anfrage richtig aussieht. Es muss etwas mit der Anfrage nicht stimmen, da Sie 404 zurückbekommen. – grimurd

Antwort

3

Mit Ausnahme der Variablen issueBody, die nicht in den von Ihnen geposteten Ausschnitten definiert ist, ist der Code korrekt. Ich habe es mit einer personal access token versucht.

Der Fehler, den Sie erhalten, erscheint, weil Sie ein scope mit Energie hinzufügen müssen, um Probleme zu öffnen.

Ich versuchte die repo und public_repo Bereiche und sie arbeiten beide. Beachten Sie, dass repo Zugriff auf private Repositories hat. Hier können Sie die list of scopes sehen.

Wenn Sie OAuth verwenden, dann sollten Sie Sie eine URL haben wie folgt aussehen:

https://github.com/login/oauth/authorize?client_id=<client-id>&scope=public_repo&redirect_uri=<redirect-uri>

+0

Danke! Scheint nach dem Hinzufügen des Oszilloskops zu woken. :) –

+0

@SohilPandya Gern geschehen! :) –

Verwandte Themen