dropbox-js を使用して、ローカル マシンに Dropbox ログインを正常に実装しました。
認証は、次の関数で実行されます。
router.get('/dropbox', isAuthenticated, function(req, res, next) {
var isLoggedIn = !!req.user;
var dropboxClient = req.app.get('dropboxClient');
dropboxClient.authenticate(function(error, client) {
if (error) {
console.log(error);
}
dropboxClient.readdir("/", function(error, entries) {
if (error) {
console.log(error); // Something went wrong.
return 0;
}
console.log(entries);
var folders = getFolders(entries);
console.log("Your Dropbox contains " + folders.join(", "));
res.render('settings', { title: 'Express', loggedIn: isLoggedIn, folders: folders });
});
});
});
dropboxClient は app.js で次のように定義されています。
var dropboxClient = new Dropbox.Client({
key: dropboxConfig.dropbox.app_key,
secret: dropboxConfig.dropbox.app_secret
});
dropboxClient.authDriver(new Dropbox.AuthDriver.NodeServer(8191));
また、Dropbox アプリ コンソールで定義されている OAuth 2 リダイレクト URI は次のとおりです。
http://localhost:8912/oauth_callback
前述のように、アプリがローカルで実行されている場合はすべて正常に動作しますが、クラウド プラットフォームに転送すると応答 502 (Bad gateway) が返されます。
OAuth2 リダイレクト URI を追加してみましたmyapp.evennode.com:8912/oauth_callback
しかし、それは機能していません。dropbox-js を使用して、任意のクラウド プラットフォーム (heroku、evennode ...) でドロップボックス認証を正常に実装できた人はいますか?
助けていただければ幸いです。