gpt4 book ai didi

android - 如何将我的 Google Maps Time Zone API key 限制为 Android 应用程序?

转载 作者:太空狗 更新时间:2023-10-29 14:40:03 27 4
gpt4 key购买 nike

是否可以将时区 API key 限制为 Android 应用程序?

Google Maps Android API 和 Google Places API key 可以通过定义包名称和 SHA-1 哈希来限制某些 Android 应用程序。

这对 Maps and Places API 没有问题,但对时区 API 使用完全相同的设置会不断返回“REQUEST_DENIED”。将应用程序限制设置回“无”会导致查询成功,但我不想让我的 API key 不 protected 。

我调用API的方式如下:

double lat = 51.1789;
double lon = -1.8262;
long time = 1523092938;
String Api_key = "#API_KEY#";

String query = "https://maps.googleapis.com/maps/api/timezone/json?location="+String.format(Locale.ROOT, "%.4f",lat)+","+String.format(Locale.ROOT, "%.4f",lon)+"&timestamp="+time+"&key="+ Api_key;

protected JSONObject doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;

try {
URL url = new URL(query);
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.connect();

System.out.println(query);


InputStream stream = connection.getInputStream();

reader = new BufferedReader(new InputStreamReader(stream));

StringBuffer buffer = new StringBuffer();
String line = "";

while ((line = reader.readLine()) != null) {
buffer.append(line+"\n");
Log.d("Response: ", "> " + line);
}
return new JSONObject(buffer.toString());
} catch (Exception e) {
e.printStackTrace();
}
}

收到的响应是:

{
"errorMessage" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address XX.XX.XX.XX, with empty referer",
"status" : "REQUEST_DENIED"
}

如果我将应用程序限制设置为无,一切正常:

{
"dstOffset" : 3600,
"rawOffset" : 0,
"status" : "OK",
"timeZoneId" : "Europe/London",
"timeZoneName" : "British Summer Time"
}

最佳答案

我发现这与此处描述的问题基本相同:Android Google Maps Direction Api - Api key restriction not working

简而言之,Google Maps Android API 是一种网络服务,唯一有效的 API key 限制是 IP 限制(应用程序限制仅适用于 Android API)。

因此,您只剩下一个解决方案:实现一个中间服务器,该服务器从您的应用程序接收查询、查询 Google API,并通过传递 Google API 响应来响应您的应用程序。通过这种方式,可以将 API key 限制为您的中间服务器 IP。

但是,如何限制第三方对中间服务器的访问本身就是一个问题。

关于android - 如何将我的 Google Maps Time Zone API key 限制为 Android 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com