如何通过离线访问为 Google API 生成 "client_secret.json"
How to generate "client_secret.json" for Google API with offline access
我正在尝试使用 service account 在后端服务中向 google API 进行身份验证。它根本没有 UI。
我使用 service account
从 google 开发控制台生成了 json 格式的私钥,但其中没有名为“client_secret”的字段。
我在 github, and its structure should be correctly parsed by GoogleClientSecrets class 上找到了这个例子。
如 github 示例中那样生成正确的 client_secret.json
的步骤是什么?
如果您没有客户端密码,那么您生成的凭据类型有误。
创建一个client_secret.json文件。你去 Google developer console.
- 创建项目
- 转到左侧的凭据选项卡
- 单击此页面顶部名为“创建凭据”的按钮
- select在下拉菜单中的“服务帐号”中填写所需信息。
然后系统会提示您下载 client_secret.json 文件。
如果您打算使用任何 google API,请务必转到左侧的库并启用您将使用的 API。
我需要在很长一段时间后再次执行此操作,我正在记录截至 2022 年 5 月的步骤。
登录到google云控制台
转到 API 服务 -> 凭据
单击“+ 创建凭据”,然后 select 服务帐户
- 填写服务帐号名称,它会创建一个默认帐号id
- 点击“创建并继续”
- 在角色 selection screen 中,我 selected 所有者,因为这是我的个人项目。如果您的服务将被外部各方访问,请考虑仅提供必需的权限
- 点击继续
- 我在屏幕 3 上没有 select 任何 user/admin 角色。单击“完成”。
您将返回凭据屏幕。单击您刚刚创建的服务帐户电子邮件。
- 您应该位于“详细信息”选项卡上。单击 KEYS 选项卡。
- 单击“添加密钥”下拉菜单,然后单击“创建新密钥”。
- Select JSON 键类型(默认),然后单击创建。
- 这应该会为您下载一个 json 文件。那个文件
然后您可以使用凭据访问 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();
}
我正在尝试使用 service account 在后端服务中向 google API 进行身份验证。它根本没有 UI。
我使用 service account
从 google 开发控制台生成了 json 格式的私钥,但其中没有名为“client_secret”的字段。
我在 github, and its structure should be correctly parsed by GoogleClientSecrets class 上找到了这个例子。
如 github 示例中那样生成正确的 client_secret.json
的步骤是什么?
如果您没有客户端密码,那么您生成的凭据类型有误。
创建一个client_secret.json文件。你去 Google developer console.
- 创建项目
- 转到左侧的凭据选项卡
- 单击此页面顶部名为“创建凭据”的按钮
- select在下拉菜单中的“服务帐号”中填写所需信息。
然后系统会提示您下载 client_secret.json 文件。
如果您打算使用任何 google API,请务必转到左侧的库并启用您将使用的 API。
我需要在很长一段时间后再次执行此操作,我正在记录截至 2022 年 5 月的步骤。
登录到google云控制台
转到 API 服务 -> 凭据
单击“+ 创建凭据”,然后 select 服务帐户
- 填写服务帐号名称,它会创建一个默认帐号id
- 点击“创建并继续”
- 在角色 selection screen 中,我 selected 所有者,因为这是我的个人项目。如果您的服务将被外部各方访问,请考虑仅提供必需的权限
- 点击继续
- 我在屏幕 3 上没有 select 任何 user/admin 角色。单击“完成”。
您将返回凭据屏幕。单击您刚刚创建的服务帐户电子邮件。
- 您应该位于“详细信息”选项卡上。单击 KEYS 选项卡。
- 单击“添加密钥”下拉菜单,然后单击“创建新密钥”。
- Select JSON 键类型(默认),然后单击创建。
- 这应该会为您下载一个 json 文件。那个文件
然后您可以使用凭据访问 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();
}