gpt4 book ai didi

android - 在 gradle.properties 中保存 API key

转载 作者:IT王子 更新时间:2023-10-28 23:36:59 25 4
gpt4 key购买 nike

我是 android 新手,正在从事一个项目,我看到我获得的 API key 保存在 gradle.properties 中:

MyOpenWeatherMapApiKey="1c3ae96f93a0094e8a7chsjdgfid04aed3f10"

然后在 build.gradle(module:app) 我添加以下几行:

buildTypes.each {
it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', MyOpenWeatherMapApiKey
}

因此,在我的主程序中,我正在使用此 api 访问数据,其 URL 由这段代码获取:

final String FORECAST_BASE_URL = "http://api.openweathermap.org/data/2.5/forecast/daily?";
final String QUERY_PARAM = "q";
final String FORMAT_PARAM = "mode";
final String UNITS_PARAM = "units";
final String DAYS_PARAM = "cnt";
final String APPID_PARAM = "APPID";
Uri builtUri = Uri.parse(FORECAST_BASE_URL).buildUpon()
.appendQueryParameter(QUERY_PARAM, params[0])
.appendQueryParameter(FORMAT_PARAM, format)
.appendQueryParameter(UNITS_PARAM, units)
.appendQueryParameter(DAYS_PARAM, Integer.toString(numDays))
.appendQueryParameter(APPID_PARAM, BuildConfig.OPEN_WEATHER_MAP_API_KEY)
.build();
URL url = new URL(builtUri.toString());

所以,我的问题是,为什么要花所有精力进行更改来将 appid 存储在 gradle 部分中。不能只在主程序中直接访问吗?

我的问题的第二部分是 gradle 部分实际发生了什么,尤其是 buildTypes.each{} block ?

最佳答案

引用 - 将 API_KEY 存储在 gradle 属性中以避免上传到 Github 的完整实现。

https://richardroseblog.wordpress.com/2016/05/29/hiding-secret-api-keys-from-git/


  1. gradle.properties 添加到 .gitignore 文件中

  2. gradle.properties 文件中添加一行 API_KEY="CopyYourAPI_KEYhere"

  3. defaultConfig

    app/build.gradle 中添加以下行

    buildConfigField("String", "API_KEY", API_KEY)

  4. 使用 Key 使用如下语句

    String API_KEY = BuildConfig.API_KEY;

将其复制到您需要 API_KEY 的任何位置

这将节省您在 Github 中提交代码时添加和删除 API_KEY 的工作量。

关于android - 在 gradle.properties 中保存 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722904/

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