diff --git a/lib/routes/twitter/keyword.js b/lib/routes/twitter/keyword.js index 6ba30b8a5..54c470f4c 100644 --- a/lib/routes/twitter/keyword.js +++ b/lib/routes/twitter/keyword.js @@ -1,11 +1,16 @@ const config = require('@/config').value; const webApiImpl = require('./web-api/search'); const devApiImpl = require('./developer-api/search'); +const logger = require('@/utils/logger'); module.exports = async (ctx) => { - if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - await webApiImpl(ctx); - } else { - await devApiImpl(ctx); + if (config.twitter && config.twitter.consumer_key && config.twitter.consumer_secret) { + try { + await devApiImpl(ctx); + return; + } catch (e) { + logger.error(`Fallback to Twitter web API due to developer API error:\n${e.stack}`); + } } + await webApiImpl(ctx); }; diff --git a/lib/routes/twitter/user.js b/lib/routes/twitter/user.js index 5cbde2707..60820a94e 100644 --- a/lib/routes/twitter/user.js +++ b/lib/routes/twitter/user.js @@ -1,11 +1,16 @@ const config = require('@/config').value; const devApiImpl = require('./developer-api/user'); const webApiImpl = require('./web-api/user'); +const logger = require('@/utils/logger'); module.exports = async (ctx) => { - if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - await webApiImpl(ctx); - } else { - await devApiImpl(ctx); + if (config.twitter && config.twitter.consumer_key && config.twitter.consumer_secret) { + try { + await devApiImpl(ctx); + return; + } catch (e) { + logger.error(`Fallback to Twitter web API due to developer API error:\n${e.stack}`); + } } + await webApiImpl(ctx); };