当我正在将Spotify API
集成到Google Assistant
应用程序中时,实现Account Linking
,
getaddrinfo EAI_AGAIN-api.spotify.com:443
尽管API实现似乎没有任何问题,但上面的错误一直在控制台中出现。访问令牌被正确创建和接收,客户端和机密ID被填充,没有任何拼写错误。此外,我还在Spotify Console
上测试了API调用(https://developer.spotify.com/console/get-artist-albums/)。未发现错误。它从Spotify服务器获取了预期的数据,因此它不应该与Account Linking
和Spotify Server
相关。我自己创建的代码如下:我认为spotify-web-api-node
、node
、npm
或firebase-functions
有问题??我最近做了节点版本控制,所以我可能做错了什么。
- 节点版本:v7.9.0
- spotify web api节点:^4.0.0
- firebase函数:^2.0.3
- npm版本:6.4.1
- 添加了引擎:{"node":"8"}//这是在package.json中使用asyn和wait
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
});
}
更新
@Nick Felker在下面的评论中提到,只有通过付费计划才能进行外部通话。所以这可能是解决方案(现在没有证明有效,因为我没有使用付费计划。下面的详细解释引用自另一篇StackOverflow文章的回答评论
Spark计划只允许对谷歌旗下服务的出站网络请求。配额内允许入站调用请求。在Blaze计划中,Cloud Functions提供了一个永久的免费层。每月免费提供前2000000次调用、400000 GB秒、200000 CPU秒和5 GB的互联网出口流量。您只对超过此免费分配的使用量收取费用。定价基于调用总数和计算时间。计算时间是可变的,基于为函数提供的内存和CPU的数量。使用限制也通过每日和100秒的配额强制执行。有关更多信息,请参阅云功能定价。
更新
就我而言,上述解决方案行之有效。希望这篇文章能帮助到其他人!
由于网络问题,我出现了此错误。连接时解决