Я запускаю api-сервер nodejs + express на основе heroku и используя библиотеку dropbox-js. Вот что я хотел бы сделать:
- Пользователь попадает в конкретную конечную точку api и запускает процесс.
- Сгенерировать некоторые текстовые файлы с помощью процесса node и сохранить их на сервере
- Перенесите эти файлы в ящик, который у меня есть, используя мои собственные учетные данные (приложение пользователя и Dropbox).
Никогда не будет случая, когда случайный пользователь должен это сделать.. это командная учетная запись, и это внутренний инструмент.
Часть, которая меня отключает, заключается в том, что dropbox хочет открыть окно браузера и получить разрешение от меня для подключения к приложению. Проблема в том, что я, очевидно, не могу нажать кнопку, когда процесс запущен на экземпляре heroku.
Есть ли способ разрешить доступ к приложению полностью в node?
Я чувствую, что могу потенциально использовать процесс phantomJS, чтобы щелкнуть кнопку - но это кажется слишком сложным, и я хотел бы избежать его, если это возможно.
Вот мой код аутентификации:
// Libraries
var Dropbox = require('dropbox');
var DROPBOX_APP_KEY = "key";
var DROPBOX_APP_SECRET = "secret";
var dbClient = new Dropbox.Client({
key: DROPBOX_APP_KEY, secret: DROPBOX_APP_SECRET, sandbox: false
});
dbClient.authDriver(new Dropbox.Drivers.NodeServer(8191));
dbClient.authenticate(function(error, client) {
if (error) {
console.log("Some shit happened trying to authenticate with dropbox");
console.log(error);
return;
}
client.writeFile("test.txt", "sometext", function (error, stat) {
if (error) {
console.log(error);
return;
}
console.log("file saved!");
console.log(stat);
});
});