【问题标题】:Heroku deezer API no resultsHeroku deezer API 没有结果
【发布时间】:2014-08-06 21:11:57
【问题描述】:

我目前正在使用托管在 Heroku 上的 Deezer API 构建一个应用程序。当我在本地运行应用程序时(我位于加拿大),我得到了搜索结果。当应用程序部署在 Heroku 上时,我没有得到任何结果

body: '{"data":[],"total":0}' }

搜索功能是:

exports.searchByTrack = function (req, res) {
    search('http://api.deezer.com/search/track?', req.query.q, res);
};

function search(url, searchQuery, res) {
    url += qs.stringify({
        q: searchQuery
    });
    request({
        uri: url,
        method: 'GET'
    },
    function (error, response, body) {
            console.log(JSON.stringify(response), JSON.stringify(body));
            if (!error && response.statusCode === 200) {
                searchSuccess(res, JSON.parse(body));
            } else {
                searchError(res, error, response, body);
            }
        }
    );
}

我发现其他一些人由于服务器所在的区域而没有结果: Why Deezer search API is not returning results on deployed cloud applicationDeezer API: Search result is empty

它说要在请求中添加一个令牌以获得支持。我已经更新了我的搜索功能以添加一个令牌来请求:

function search(url, searchQuery, res) {
    url += qs.stringify({
       q: searchQuery,
       access_token: 'nyeLL0j9d953e221bcbee5flp77Zqu553e221bcbee98mkAWOsT'
   });
 ....
}

我仍然得到: 正文:'{"data":[],"total":0}' }

有没有办法让它在 Heroku 上运行?或者有没有办法假装我在另一个国家?

【问题讨论】:

    标签: node.js heroku deezer


    【解决方案1】:

    你知道 Heroku 的服务器在哪里吗?这似乎与您给出的示例相同。所以如果你想让它工作,你必须在请求中传递一个 access_token 参数。如果 access_token 与在 Deezer 活跃国家(例如意大利)注册的高级用户相关联,则请求将考虑与令牌相关联的用户国家。因此,它将返回结果。上述解决方法不适用于免费用户。

    【讨论】:

    • 我没有意识到访问令牌必须与 PREMIUM 帐户相关联。感谢您的澄清。我将不得不使用另一个音乐 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多