一段时间以来,我一直在 Windows 7 系统上使用 Chromium,并且运行良好。但是,在https://download-chromium.appspot.com的常用位置升级到最新版本后,当我加载浏览器时,我收到消息“Google API 密钥丢失。Chromium 的某些功能将被禁用”。
然后我也无法登录我的 Google 帐户,收到消息“哦哦。服务不可用,请稍后再试”。我认为这是因为上面的 API 密钥存在问题。
尽管今天删除、重新安装并使用最新版本 (362135),但我仍然无法消除错误。我的普通版 Chrome 工作正常。
有没有人有任何想法?
谢谢,
奥利弗。
获取 Google Maps API 密钥
您的应用程序需要一个 API 密钥来访问 Google 地图服务器。您需要的密钥类型是 Android 应用程序的密钥。钥匙是免费的。您可以将它与调用 Google Maps Android API 的任何应用程序一起使用,并且它支持无限数量的用户。
选择以下一种方式来获取您的 API 密钥:
Run Code Online (Sandbox Code Playgroud)The fast, easy way: Use the link provided in the google_maps_api.xml file that Android Studio created for you: Copy the link provided in the google_maps_api.xml file and paste it into your browser. The link takes you to the Google开发人员控制台并通过 URL 参数提供信息,从而减少您需要手动输入。按照说明在控制台上创建新项目或选择现有项目。为您的控制台项目创建一个 Android API 密钥。复制生成的 API 密钥,返回 Android Studio,并将 API 密钥粘贴到 google_maps_api.xml 文件中的元素中。
我想知道我们如何找到该文件。它位于哪里?
是否可以将时区 API 密钥限制为 Android 应用程序?
通过定义包名称和 SHA-1 哈希值,可以将 Google Maps Android API 和 Google Places API 密钥限制为某些 Android 应用程序。
这对于 Maps and Places API 来说没有问题,但对 Time Zone API 使用完全相同的设置会不断返回“ REQUEST_DENIED”。将应用程序限制设置回“无”会导致查询成功,但我不想让我的 API 密钥不受保护。
我调用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)+"×tamp="+time+"&key="+ Api_key;
protected JSONObject doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(query);
connection = (HttpURLConnection) …Run Code Online (Sandbox Code Playgroud) 我想从我的 android/ios 应用程序中使用自动完成 api。为此,我需要像这样调用 url:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=paris&key=<myapikey>
Run Code Online (Sandbox Code Playgroud)
问题是:什么可以让其他人不会从我的应用程序中提取我的 api 密钥并将其用于自己的目的?这很重要,因为最后由谷歌支付使用费用的是我......
google-maps google-api api-key google-maps-api-3 google-maps-android-api-2
我有一个问题,我想编写一个程序,该程序必须与某些 3rd 方 Web 服务进行交互。此服务需要客户端(我的程序)通过用户名/密码组合以及令牌来授权自己的特定操作。用户名/密码特定于我的程序的用户,这里没有问题。令牌(API 密钥)有问题。
假设我想让我的程序开源并将其源代码放在某个公共服务器上。当然,我不能硬编码(或包含)API 密钥。否则,我不仅会违反不发布它的合同,而且任何(未经授权的)使用都将归咎于我和我的程序。
根据我的研究(例如,开源一个项目但对 API 密钥保密或如何在我的 Electron 应用程序中隐藏 API 密钥?)我可以在 3rd 方 API 和我的程序之间放置一个代理服务器(封闭源代码)。现在我看到有两扇敞开的大门让心怀不轨的人攻击这种情况:
所以现在我只是将问题转移到检测正在运行的软件是否是原始软件,从第 3 方转移到我的代理服务器。我唯一的好处是我可能知道哪个用户是坏人并禁止他,但这就是我所能做的,而我的令牌可能会被这个问题撤销。
很抱歉,我没有在网络上找到针对此特定问题的可用解决方案。我该如何解决这个问题(在抽象层面上)?
我正在使用 Nuxt(使用 SSR/PWA/Vuejs/Node.js/Vuex/Firestore)并希望有一个大致的想法或有以下示例:
我找到了许多推荐使用环境变量的“解决方案”,但是对于每个解决方案,有人都表示它不安全。看:
https://github.com/nuxt-community/dotenv-module/issues/7
https://github.com/nuxt/nuxt.js/issues/2033
也许服务器中间件就是答案?https://blog.lichter.io/posts/sending-emails-through-nuxtjs和https://www.youtube.com/watch?v=j-3RwvWZoaU (@11:30)。我只需要在输入后向邮件黑猩猩帐户添加一封电子邮件,这似乎是很多开销。
我还看到我已经将 Firestore api 密钥存储为环境变量。这安全吗?当我打开 chrome 开发工具-> 源代码-> 页面-> app.js 时,我可以在那里看到 api 密钥(仅在开发模式下测试)!
我对 expo 和 react-native(create-react-native-app)很陌生,我面临一个问题,经过多次研究,我看到了问题,但没有看到解决方案。
我开发了我的应用程序,它应该只是前端,不需要数据库或身份验证,但我仍然需要使用 Google Places API 和电子邮件发送提供商 API(可能是 sendgrid、mailjet ...),我正面临着这个问题我认为我不会是第一个面临的问题:
我到处都读到你不应该在你的应用程序中存储任何秘密密钥,我明白为什么。但是我在任何地方都找不到简单的解决方案?
我找到了以下包:
https://github.com/goatandsheep/react-native-dotenv 但我怀疑它是否解决了这个问题,因为它还保留了应用程序中的所有内容。
我发现以下自述文件:
https://github.com/EQimper/blog/blob/master/content/post/where-do-i-put-secret-key-in-expo-project.md 但我真的不认为它使任何安全.
我真的希望有人能引导我找到解决这个问题的最简单的方法。如果解决方案是:有一个后端并使用此身份验证服务,请多加开发它(任何教程或其他信息?)
看到我的应用程序已完全准备就绪,但出于安全原因我无法将其放到网上,这让我非常沮丧。
非常感谢。
我在 CI/CD 平台上定义了一个 API 密钥,如下所示:
export API_KEY="XXXXXXXXXX"
有没有办法可以用我的构建以某种方式编译这个变量,这样我就可以在 Swift 中引用它,而不必担心在运行时在二进制环境中定义的变量?ProcessInfo.processInfo.environment很明显我用不了,因为API key只在我的CI/CD环境中定义。我想用密钥编译我的二进制文件,以便在我分发我的应用程序时可以使用密钥。
我的用例是我想避免将 API 密钥放在我的 git 存储库中,而是在生成构建时从 CI/CD 平台获取它。如果有一种方法可以注入一个环境变量,然后将其编译为二进制文件的一部分,那将是理想的。
可以在没有 API KEY 的情况下使用 google Maps Api 吗?
使用
http://maps.googleapis.com/maps/api/geocode/xml?address=[address]&sensor=false
Run Code Online (Sandbox Code Playgroud)
我收到以下错误响应
REQUEST_DENIED(验证对 Google Maps Platform API 的每个请求)
我只需要为我的项目做一点 POC。
在另一种情况下,我创建了一个 api 密钥,它需要启用计费。
在结算过程中,信用卡是强制性的。
是不是可以免费激活apiKey?
谢谢 ;)
我对 Google AppScript 很陌生,试图编写一个连接到自定义 REST API 的连接器。对于那个 API,我需要一个 API 密钥(或秘密),这是每个用户的。由于在脚本中以纯文本形式存储秘密并不是最好的主意,我想将它存储在Google PropertyService 中并从那里检索它。像这样:
var userProperties = PropertiesService.getUserProperties();
var apiKey = userProperties.getProperty('MY_SECRET')
Run Code Online (Sandbox Code Playgroud)
但我不明白的是,用户怎么能先存储密钥?我还没有找到任何用户(在本例中是我)可以查看或编辑属性的地方。然后我发现了这个很好的用户属性介绍,它在脚本容器中创建了一个菜单,允许用户手动输入机密。
const API_KEY = 'API_KEY';
var ui = SpreadsheetApp.getUi();
var userProperties = PropertiesService.getUserProperties();
function onOpen(){
ui.createMenu('API Keys')
.addItem('Set API Key', 'userPromptApiKey')
.addItem('Delete API Key', 'deleteApiKey')
.addToUi();
}
function userPromptApiKey(){
var userValue = ui.prompt('API Key ', ui.ButtonSet.OK);
// ToDo: add current key to the prompt
userProperties.setProperty(API_KEY, userValue.getResponseText());
}
function deleteApiKey(){
userProperties.deleteProperty(API_KEY)
}
Run Code Online (Sandbox Code Playgroud)
问题是,我的脚本没有绑定到任何容器(没有电子表格,没有文档)。相反,我想稍后在 Google DataStudio 中使用它。这就是为什么
SpreadsheetApp.getUi(); …Run Code Online (Sandbox Code Playgroud) api-key ×10
google-api ×3
android ×2
google-maps ×2
billing ×1
chromium ×1
compilation ×1
expo ×1
javascript ×1
middleware ×1
nuxt.js ×1
open-source ×1
properties ×1
react-native ×1
swift ×1
user-input ×1
vue.js ×1
vuejs2 ×1
web-services ×1
xcode ×1