在c#中使用google geolocation api 403错误

时间:2016-07-21 15:31:59

标签: c# api google-maps

我正在尝试在c#(。net 4.6.1)中使用google maps geolocation api(https://developers.google.com/maps/documentation/geolocation/intro)。我已经设置了服务器密钥并在api管理器中启用了Google Maps Geolocation API。这是我的代码:

Plotly

我收到403错误。以下是完整的回复:

using (HttpClient client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    var response = await client.PostAsJsonAsync("https://www.googleapis.com/geolocation/v1/geolocate", new { key = "keyvalue" });
    return await response.Content.ReadAsStringAsync();
}

}

我知道他们的关键值是正确的,我知道我启用了api。我也知道我没有达到每日限制,因为谷歌控制台将当天的使用情况列为零。有没有人看到我的代码有问题或有任何其他建议?我必须错误地发送密钥,但我不知道代码中的错误在哪里。

更新

正确的代码是:

{
"error": {
    "errors": [{
        "domain": "usageLimits",
        "reason": "dailyLimitExceededUnreg",
        "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
        "extendedHelp": "https://code.google.com/apis/console"
    }],
    "code": 403,
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}

我将密钥作为json对象传递,而不是将密钥放在url中。

1 个答案:

答案 0 :(得分:1)

您必须将密钥作为参数添加到URL

https://www.googleapis.com/geolocation/v1/geolocate?key=keyValue