gpt4 book ai didi

android - 来自此 Android 客户端应用程序 的请求被阻止 - Google API 错误 Flutter

转载 作者:行者123 更新时间:2023-12-05 00:00:51 25 4
gpt4 key购买 nike

问题描述:我正在使用 Youtube Data API 在 Flutter 应用程序中使用 API key 获取一些视频。我使用这段代码来获取我的数据:

    const FETCH_LINK =
"$BASE_URL?part=$PART&playlistId=$PLAYLIST_ID&key=$API_KEY&maxResults=$MAX_RESULTS";
var response = await http.get(Uri.parse(FETCH_LINK));

当我在项目的 GCP 控制台的“凭据”选项卡中将“应用程序限制”设置为“无”时,我得到了完美的数据

现在,当我尝试将数据限制为仅 Android 应用程序时,它显示此错误:

{error: {code: 403, message: Requests from this Android client application <empty> are blocked., errors: [{message: Requests from this Android client application <empty> are blocked., domain: global, reason: forbidden}], status: PERMISSION_DENIED, details: [{@type: type.googleapis.com/google.rpc.ErrorInfo, reason: API_KEY_ANDROID_APP_BLOCKED, domain: googleapis.com, metadata: {service: youtube.googleapis.com, consumer:

我已经检查过的内容:我在凭据选项卡中正确添加了调试和发布证书以及 android 包名称。

这里可能出现的错误是什么?我需要在请求中将任何内容作为 header 传递吗?

这是我要获取的端点

https://youtube.googleapis.com/youtube/v3/playlistItems

我的设置是这样的: enter image description here

最佳答案

一个回答here ,我们需要在 header 中传递包名称和 SHA1 key 名称。所以我的新请求看起来像这样:

const SHA1 = "0000000000000000000000000000000000000000";
const PACKAGE_NAME = "com.yourapp.name";
const HEADERS = {
'Content-Type': 'application/json',
'X-Android-Package': PACKAGE_NAME,
'X-Android-Cert': SHA1b,
};
const FETCH_LINK =
"$BASE_URL?part=$PART&playlistId=$PLAYLIST_ID&key=$API_KEY&maxResults=$MAX_RESULTS";
var response = await http.get(Uri.parse(FETCH_LINK));

关于android - 来自此 Android 客户端应用程序 <empty> 的请求被阻止 - Google API 错误 Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70099185/

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