0

在我的应用程序中,我试图获取频道数据,例如视频上传总次数和用户数。但是,运行我的应用程序时,我遇到以下错误:Youtube API请求,服务错误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网页上的指南:

  1. 导航到我的C:\Program Files\Java\jre1.8.0_101\bin目录,并在终端窗口中打开此位置。
  2. 输入以下命令keytool -list -v - keystore "C:\Users\[PATH_TO_ANDROIDDEBUGKEY].keystore"。作为密码使用android
  3. 在API控制台:
    • 创建的证书,以及用于密钥限制,选择Android应用
    • 复制的SHA-1指纹并粘贴到API控制台。还输入我的应用程序包名称(可在我的AndroidManifest.xml文件中找到)。
  4. 保存的设置。

我复制的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(); 

所以我不知道为什么我遇到的时候我已经正确地完成上述步骤的错误?这个问题是previously discussed here,但选择的答案不是我期望的,因为我想要有关键限制。


其他步骤我已经采取措施来解决该服务错误

  • 生成的你拥有签署APK和密钥库。我遵循了上面提供的相同步骤(更改密钥库路径)以获取SHA-1指纹并将其粘贴到API控制台--->未解决
  • 创建了一个全新的API密钥,并遵循上面提供的步骤--->没有解决
  • 使用该终端命令来代替,以获得SHA-1指纹:keytool -exportcert -alias androiddebugkey -keystore [path-to-debug-or-production-keystore] -list -v --->没有解决
  • 保证了YouTube数据API第3版的API管理器中启用仪表板--->未解决

任何人都可以请提供一个答案,为什么我收到了一个服务错误,如果我已按照指南中列出的证书步骤?

+0

嗯,我不知道这是否是一个错误。但根据这个[线程](http://stackoverflow.com/questions/23740251/youtube-api-v3-always-return-error-403-accessnotconfigured)它可能是谷歌系统中的一个错误。我在互联网上看到的唯一解决方法是使用浏览器键而不是Android键。 如果您有时间,请尝试检查这个[SO问题](http://stackoverflow.com/questions/33989062/restricting-usage-for-an-android-key-for-a-google-api)关于限制Android密钥的使用情况。 – KENdi

+0

@Kendi感谢您的回复。我不知道如何将您的评论标记为可接受的回复?我感谢您的帮助 :) – ByteSized

回答

1

嗯,我不知道这是否是一个错误。但根据这thread它可能是谷歌系统中的一个错误。我在互联网上看到的唯一解决方法是使用浏览器键而不是Android键。如果你有时间,也试着检查这个SO question关于限制Android密钥的使用情况

相关问题