繁体   English   中英

为什么我的api密钥不被Google Directions(Android)请求接受?

[英]Why is my api key not accepted by the Google Directions (Android) request?

每当我将Google Play服务API密钥与我的Google路线请求一起提供时,请参阅以下代码:

    private String makeDirectionsURL(double originLat, double originLong, double destLat, double destLong)
{
    StringBuilder url = new StringBuilder();
    //first part of url//
    url.append("https://maps.googleapis.com/maps/api/directions/json?");
    //start adding parameters//
    //origin coordinates
    url.append("origin="+originLat+","+originLong);
    //destiniation coordinates
    url.append("&destination=");
    url.append(destLat+","+destLong);
    //api key
    url.append("&key=");
    url.append(getResources().getString(R.string.google_api_key));
    //NOTE: for some reason, the request suceeds when leaving out the api key 

    return url.toString();

}

当我在请求中包含api密钥作为参数时,json响应显示我的请求已被拒绝。 回复如下:

{“error_message”:“此IP,站点或移动应用程序无权使用此API密钥。”,“routes”:[],“status”:“REQUEST_DENIED”}

然而,相同的api密钥适用于我的谷歌地图视图 - 我的api控制台注册了地图视图配额限制的访问。 甚至更奇怪,当我在Directions请求中省略key参数时,我得到一个有效的JSON响应。

我有一种感觉,我必须为Google Directions服务生成另一个不同的api密钥 - 但我不知道如何。 此处的文档: https//developers.google.com/maps/documentation/directions/#api_key

说访问控制台并激活Directions API服务 - 我做到了。 然后它说我的api密钥“将在API访问页面的Simple API访问部分提供。方向API应用程序使用密钥用于服务器应用程序。” 现在是我困惑的地方 - 如果我从移动设备访问我如何使用服务器应用程序的密钥 - 我假设这是任何希望使用该服务的网页 - 但我该怎么做的android应用程序。 正如我所说的,我已经尝试使用我的简单API访问密钥用于Android应用程序,我知道它可以工作,但是当我将相同的密钥传递给Google方向时 - 它神秘地不起作用......

任何帮助,含糊的指导或阅读链接都将非常感激。

PS:如果我无法解决这个问题 - 我是否可以继续发送带有api密钥的请求?

我认为问题是因为你试图传递一个server key ,它直接绑定到你服务器的IP地址,当你应该传递一个android app key

在您的Google API控制台中,导航到API和Auth 从这里,您可以创建一个新的公共API密钥。

创建Android密钥

出现提示时,选择Android Application 在此输入图像描述

您需要输入设备的SHA1证书指纹

这来自用于签署apk的密钥库。 在调试中运行应用程序时,您很可能正在使用IDE的调试密钥库。 谷歌对如何获取这些信息有一个很好的写作

发布应用程序时,您需要使用自己的密钥进行签名。 您需要将API密钥编辑为新的密钥库SHA1指纹或创建新的API密钥。

此外,根据Google的说法,您应该使用密钥。

所有Directions API应用程序都应使用API​​密钥。 在您的请求中包含密钥:

  • 允许您监视API中应用程序的API使用情况
  • 安慰。 启用每个密钥而不是每个IP地址配额限制。
  • 确保Google可以在必要时就您的申请与您联系。

虽然我无法评论他们如何严格执行此操作,但我强烈建议您这样做以避免任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM