如何从托管在 Azure 上的 Web 应用程序访问书籍 API Microsoft



我构建了一个足够简单的网络应用程序,它使用 Google Books API 来检索用户提供的 ISBN 的卷信息。该应用程序使用官方 C# 库。请求通过 API 密钥进行授权。

在本地计算机上运行该应用程序时,我使用德国IP地址访问该服务,一切都很好。但是,从Microsoft Azure 访问书籍 API 时,我收到以下错误:

Google.Apis.Requests.RequestError
无法确定受地理限制的操作的用户位置。[403]
错误 [
    消息[无法确定受地理限制的操作的用户位置。]
    位置[ - ]
    原因[未知位置]
    域[全球]
]

有谁知道如何从托管在 Azure 中的 Web 应用程序访问 Google Books API Microsoft?

country=us URL 参数为我解决了这个问题,在这个 github 项目中提到过,但当然没有记录在卷列表路由中

这个博客说你也可以使用x-forwarded-for,我没有尝试过

好的,

我不知道这是否有效。 但是您可以在请求中提供 IP 地址。 如果它不让我知道,这可能会也可能不起作用,我会删除它。

var bookService = new BooksService(new BaseClientService.Initializer()
    {
     ApiKey = "xxxx",
     ApplicationName = "BooksService Authentication Sample",
    });

var request = bookService.Bookshelves.List("user");
request.UserIp = "";  //<-- find an ip address to feed it
var result = request.Execute();

问题是谷歌通常会获取请求来自的IP地址。 我想知道为什么它无法从 Azure 发送请求的 IP 地址中获取地理位置。

相关内容

  • 没有找到相关文章

最新更新