错误:getaddrinfo EAI_AGAIN api.spotify.com:443

Ryo*_*rai 5 javascript spotify node.js google-assistant-sdk

当我正在集成Spotify APIGoogle Assistant应用程序中时,实施Account Linking

getaddrinfo EAI_AGAIN api.spotify.com:443

上面的错误一直在控制台中出现,尽管它似乎在 API 实现方面没有任何问题。访问令牌已正确创建和接收,并且客户端和机密 ID 已填写,没有任何拼写错误。此外,我测试了 API 调用Spotify Consolehttps://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-node: ^4.0.0
  • 火力基地功能:^2.0.3
  • npm 版本:6.4.1
  • 添加引擎:{ "node": "8" } // 这是在 package.json 中使用 asyn 和 await

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
    });
}
Run Code Online (Sandbox Code Playgroud)

更新

@Nick-Felker 在下面的评论中提到,只有通过付费计划才允许外部通话。所以这可能是解决方案(由于我没有使用付费计划,因此现在没有证明有效。下面的详细解释引自另一篇 StackOverflow 帖子的回答评论

Spark 计划只允许对 Google 拥有的服务发出出站网络请求。配额内允许入站调用请求。在 Blaze 计划中,Cloud Functions 提供永久免费层。每月免费提供前 2,000,000 次调用、400,000 GB 秒、200,000 CPU 秒和 5 GB 的 Internet 出口流量。您只需为超过此免费配额的使用量付费。定价基于调用总数和计算时间。计算时间根据为函数配置的内存和 CPU 量而变化。使用限制也通过每日和 100 秒配额强制执行。有关更多信息,请参阅Cloud Functions 定价

更新

就我而言,上述解决方案有效。希望这篇文章对其他人有帮助!

小智 1

由于网络问题,我收到此错误。连接后解决了