2016-09-06 3 views
0

Ich versuche, eine Datei herunterzuladen, die zuvor in Slack hochgeladen wurde. Ich verwende den folgenden Link, der besagt, dass ich die url_private -Eigenschaft einer Nachricht zusammen mit einem Autorisierungsheader verwenden muss. https://api.slack.com/types/file#authenticationladen Sie eine Slack-Datei mit Knoten

Ich habe das versucht und kann es nicht funktionieren. Hier ist mein aktueller Code.

var https = require('https'); 
 
var fs = require('fs'); 
 

 
var options = { 
 
    "method": "GET", 
 
    "hostname": "files.slack.com", 
 
    "path": "/files-pri/FOO/download/foo.jpg", 
 
    "rejectUnauthorized": "false", 
 
    "headers": { 
 
     "Authorization": "xoxp-foo-foo-foo" 
 
    } 
 
} 
 

 
function pDownload(url, dest){ 
 
    var file = fs.createWriteStream(dest); 
 
    return new Promise((resolve, reject) => { 
 
    var responseSent = false; // flag to make sure that response is sent only once. 
 

 
    https.get(options, response => { 
 
     response.pipe(file); 
 
     file.on('finish',() =>{ 
 
     file.close(() => { 
 
      if(responseSent) return; 
 
      responseSent = true; 
 
      resolve(); 
 
     }); 
 
     }); 
 
    }).on('error', err => { 
 
     if(responseSent) return; 
 
     responseSent = true; 
 
     reject(err); 
 
    }); 
 
    }); 
 
} 
 

 
//example 
 
pDownload(permalink, fileLocation) 
 
    .then(()=> console.log('downloaded file no issues...')) 
 
    .catch(e => console.error('error while downloading', e));

Danke für die Hilfe.

+0

Können Sie irgendwelche Ausgaben oder Fehler schreiben Sie bekommen, was vielleicht erhält Ihre Fehlerhandler? – broguinn

Antwort

0

Laut den Dokumenten an der Verknüpfung, die Sie freigegeben Authorization Header ist falsch. Sie müssen Bearer YOUR_SLACK_TOKEN als Wert wie folgt haben.

'Authorization': 'Bearer xoxp-foo-foo-foo-foo'

https://api.slack.com/types/file#authentication