在我的应用程序中,我正在尝试获取频道数据,例如视频上传总数和订阅者数量。但是,在运行我的应用程序时,我遇到以下错误:
E /服务错误:: 403:请求未指定任何Android程序包名称或签名证书指纹。请确保客户端正在发送它们或使用API控制台更新您的密钥限制。
就获取OAuth凭证而言,我已遵循多个指南,包括Google Developers网页上提供的指南:
C:\Program Files\Java\jre1.8.0_101\bin
目录并在终端窗口中打开此位置。keytool -list -v - keystore "C:\Users\[PATH_TO_ANDROIDDEBUGKEY].keystore"
。使用 android 作为密码。我将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,但选择的答案并不是我所期望的,因为我希望获得密钥限制。
我已解决服务错误的其他步骤
keytool -exportcert -alias androiddebugkey -keystore [path-to-debug-or-production-keystore] -list -v
---> 未解决 如果我按照指南中列出的凭据步骤,任何人都可以提供一个答案,说明为什么我收到服务错误?
答案 0 :(得分:1)
好吧,我不知道这是不是一个bug。但根据这个thread,它可能是Google系统中的一个错误。我在互联网上看到的唯一解决此问题的方法是使用浏览器密钥而不是Android密钥。如果您有时间,请尝试检查此SO question有关限制Android密钥的使用情况