我正在尝试使用服务帐户在后端服务中向 Google API 进行身份验证。它根本没有用户界面。
我已经使用 Service Account
从 Google 开发者控制台生成了 JSON 格式的
私钥,但其中没有名为“client_secret”的字段。
我在GitHub上找到了这个例子,它的结构应该可以被
GoogleClientSecrets
类正确解析。
按照 GitHub 示例生成正确的
client_secret.json
有哪些步骤?
我需要在很长一段时间后再次执行此操作,并且我正在记录截至 2022 年 5 月的步骤。
登录谷歌云控制台
转到API服务->凭证
点击“+ Create Credentials”,然后选择服务帐户
您将返回凭据屏幕。单击您刚刚创建的服务帐户电子邮件。
然后您可以使用该凭据访问 Google 服务。例如,在我的例子中,我使用以下代码访问 youtube 服务。
clientSecretsStream
是该凭证 json 文件的输入流。
public static YouTube initializeYouTube(InputStream clientSecretsStream, String appName) throws IOException {
final HttpTransport httpTransport = new NetHttpTransport();
final JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential credential = GoogleCredential.fromStream(clientSecretsStream)
.createScoped(Collections.singleton(YouTubeScopes.YOUTUBE_READONLY));
return new YouTube.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(appName)
.build();
}
如果您没有客户端密钥,那么您生成的凭据类型错误。
创建 client_secret.json 文件。您转到 Google 开发者控制台。
然后您将被提示下载 client_secret.json 文件。
如果您打算使用任何 google api,请务必转到左侧的库并启用您将使用的 API。