当我正在融入的过程中Spotify API
into Google Assistant
应用程序,实施Account Linking
,
getaddrinfo EAI_AGAIN api.spotify.com:443
上述错误一直在控制台中出现,尽管它似乎在 API 实现方面没有任何问题。访问令牌已正确创建和接收,并且客户端和秘密 ID 已填写,没有任何拼写错误。另外,我测试了 API 调用Spotify Console
(https://developer.spotify.com/console/get-artist-albums/ https://developer.spotify.com/console/get-artist-albums/)。没有发现错误。它从 Spotify 服务器获取了预期的数据,因此它不应该与Account Linking
and Spotify Server
。我自己创建的代码如下:我认为周围有问题spotify-web-api-node
, node
, npm
, or firebase-functions
??我最近做了节点版本控制,所以我可能做错了什么。
-
节点版本:v7.9.0
- Spotify-web-api-节点:^4.0.0
- firebase 函数:^2.0.3
- npm 版本:6.4.1
-
添加引擎:{“node”:“8”}// 这是在 package.json 中使用异步和等待
app.intent(SomeIntent, async (conv, params) => {
console.log('user info', JSON.stringify(conv.user));
conv.ask('lets play'); //okay
const access_token = conv.user.access.token || ''; // okay
console.log('Your TOKEN information here: ' + access_token); // okay
spotifyApi.setAccessToken(access_token); // should be set correctly
let data = await findMusic(); // error in the findMusic func
conv.ask('found this song。', data.name); // so no data.name
});
function findMusic() {
return spotifyApi.getArtistAlbums('43ZHCT0cAZBISjO8DG9PnE').then((data) => {
console.log('artist song', data.body);
return data.body; //this does not return because error is produced
}).catch(err => {
console.log('Something went wrong!', err);
return err; // this error is WebapiError: getaddrinfo EAI_AGAIN api.spotify.com:443
});
}
UPDATE
@Nick-Felker 在下面的评论中提到,只有通过付费计划才允许外部呼叫。所以这可能是解决方案(目前尚未证明有效,因为我没有使用付费计划。下面的详细说明引用自另一篇 StackOverflow 帖子的回答评论 https://stackoverflow.com/questions/43415759/use-firebase-cloud-function-to-send-post-request-to-non-google-server
Spark 计划仅允许向 Google 自有服务发出出站网络请求。在配额内允许入站调用请求。在 Blaze 计划中,Cloud Functions 提供永久免费套餐。每月免费提供前 2,000,000 次调用、400,000 GB 秒、200,000 CPU 秒和 5 GB 的 Internet 出口流量。您只需为超过此免费配额的使用付费。定价基于调用总数和计算时间。计算时间根据为函数配置的内存和 CPU 量而变化。使用限制还通过每日配额和 100 秒配额来实施。有关更多信息,请参阅云功能定价 https://firebase.google.com/pricing/.
UPDATE
就我而言,上述解决方案有效。希望这篇文章对其他人有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)