Youtube API 请求,服务错误 403
Youtube API Request, Service Error 403
在我的应用程序中,我试图获取频道数据,例如视频上传总数和订阅者数量。但是,当运行我的应用程序时,我遇到以下错误:
E/Service Error:: 403 : The request did not specify any Android package name or signing-certificate fingerprint. Please ensure that the client is sending them or use the API Console to update your key restrictions.
就获取 OAuth 凭据而言,我遵循了几个指南,包括 Google Developers 网页上提供的指南:
- 导航到我的
C:\Program Files\Java\jre1.8.0_101\bin
目录并在终端 window 中打开此位置。
- 输入以下命令
keytool -list -v - keystore "C:\Users\[PATH_TO_ANDROIDDEBUGKEY].keystore"
。使用 android 作为密码。
- 在 API 控制台上:
- 已创建凭据,并针对密钥限制选择了 Android 应用程序
- 复制 SHA-1 指纹并粘贴到 API 控制台。还要输入我的应用程序包名称(在我的 AndroidManifest.xml 文件中找到)。
- 已保存设置。
我将 API 密钥复制到我的应用程序中,并始终以静态方式访问它。
即:
youtube = new YouTube.Builder(...).setYouTubeRequestInitializer(new YouTubeRequestInitializer(Config.YOUTUBE_API_KEY)).setApplicationName("MY_APPLICATION_NAME").build();
YouTube.Channels.List query = youtube.channels().list("statistics");
query.setKey(Config.YOUTUBE_API_KEY);
query.setFields("items(statistics(subscriberCount,videoCount))");
ChannelListResponse response = query.execute();
所以我不知道为什么我在正确完成这些步骤的情况下会遇到上述错误?这个问题是 ,但选择的答案不是我所期望的,因为我想有密钥限制。
我为解决服务错误而采取的其他步骤
- 生成了我自己的签名 APK 和密钥库。我按照上面提供的相同步骤(更改密钥库路径)获取 SHA-1 指纹并粘贴到 API 控制台 ---> 未解析
- 创建了一个全新的 API 密钥并按照上面提供的步骤操作 ---> 没有解决
- 改为使用此终端命令获取 SHA-1 指纹:
keytool -exportcert -alias androiddebugkey -keystore [path-to-debug-or-production-keystore] -list -v
---> 未解析
- 确保在 API 管理器仪表板上启用了 Youtube 数据 API v3 ---> 未解决
如果我遵循了指南中列出的凭证步骤,谁能回答我为什么会收到服务错误?
好吧,我不知道这是不是一个错误。但是根据这个 thread it might be a bug in the Google System. The only workaround that I see in the internet for this issue is by using a Browser key instead of Android key. If you have time, try also to check this 关于 Android 键
的限制使用
在我的应用程序中,我试图获取频道数据,例如视频上传总数和订阅者数量。但是,当运行我的应用程序时,我遇到以下错误:
E/Service Error:: 403 : The request did not specify any Android package name or signing-certificate fingerprint. Please ensure that the client is sending them or use the API Console to update your key restrictions.
就获取 OAuth 凭据而言,我遵循了几个指南,包括 Google Developers 网页上提供的指南:
- 导航到我的
C:\Program Files\Java\jre1.8.0_101\bin
目录并在终端 window 中打开此位置。 - 输入以下命令
keytool -list -v - keystore "C:\Users\[PATH_TO_ANDROIDDEBUGKEY].keystore"
。使用 android 作为密码。 - 在 API 控制台上:
- 已创建凭据,并针对密钥限制选择了 Android 应用程序
- 复制 SHA-1 指纹并粘贴到 API 控制台。还要输入我的应用程序包名称(在我的 AndroidManifest.xml 文件中找到)。
- 已保存设置。
我将 API 密钥复制到我的应用程序中,并始终以静态方式访问它。 即:
youtube = new YouTube.Builder(...).setYouTubeRequestInitializer(new YouTubeRequestInitializer(Config.YOUTUBE_API_KEY)).setApplicationName("MY_APPLICATION_NAME").build();
YouTube.Channels.List query = youtube.channels().list("statistics");
query.setKey(Config.YOUTUBE_API_KEY);
query.setFields("items(statistics(subscriberCount,videoCount))");
ChannelListResponse response = query.execute();
所以我不知道为什么我在正确完成这些步骤的情况下会遇到上述错误?这个问题是
我为解决服务错误而采取的其他步骤
- 生成了我自己的签名 APK 和密钥库。我按照上面提供的相同步骤(更改密钥库路径)获取 SHA-1 指纹并粘贴到 API 控制台 ---> 未解析
- 创建了一个全新的 API 密钥并按照上面提供的步骤操作 ---> 没有解决
- 改为使用此终端命令获取 SHA-1 指纹:
keytool -exportcert -alias androiddebugkey -keystore [path-to-debug-or-production-keystore] -list -v
---> 未解析 - 确保在 API 管理器仪表板上启用了 Youtube 数据 API v3 ---> 未解决
如果我遵循了指南中列出的凭证步骤,谁能回答我为什么会收到服务错误?
好吧,我不知道这是不是一个错误。但是根据这个 thread it might be a bug in the Google System. The only workaround that I see in the internet for this issue is by using a Browser key instead of Android key. If you have time, try also to check this