Android - Youtube API V3搜索无法正常工作

问题描述 投票:3回答:1

我很难集成youtube v3 API。我尝试了在Youtube API Key中给出的所有可能的解决方案。

这是我的代码:

YouTube.Search.List query; 
query = youTube.search().list("id, snippet");
query.setKey(YOUR_API_KEY); 
query.setMaxResults(5L); 
query.setChannelId(channelId); 
query.setOrder("date"); 
SearchListResponse response = query.execute(); 
List<SearchResult> results = response.getItems();

根据Ayman Al-Absi的回答,我也尝试传递packageName并生成SHA1(ZFzdtB22bpkKGc1kSgi0qxUPSWk =)。

request.getHeaders().set("X-Android-Package", packageName);
request.getHeaders().set("X-Android-Cert",signature);

但是当我这样做时,我得到了错误:

{“code”:403,“errors”:[{“domain”:“usageLimits”,“message”:“Android程序包名称和签名证书指纹,com.example.somename和ZFzdtB22bpkKGc1kSgi0qxUPSWk =,与应用程序不匹配在您的API密钥上配置的限制。请使用API​​控制台更新您的密钥限制。“,”reason“:”ipRefererBlocked“,”extendedHelp“:”https://console.developers.google.com/apis/credentials?project=1234567“}],”message“:”Android软件包名称和签名 - 证书指纹,com.example.somename和ZFzdtB22bpkKGc1kSgi0qxUPSWk =,与您在API密钥上配置的应用限制不匹配。请使用API​​控制台更新您的密钥限制。“ }

API密钥配置:

enter image description here

我为调试和prod环境添加了SHA-1指纹。

android search youtube api-key
1个回答
0
投票

好的,这已经过时了,但我认为这适用于我的情况,我认为这可能有助于其他人。我去了oauth,似乎解决了。

真正的问题是,如果你使用一个不受限制的密钥[并且可能,取决于启用的api]有一个账单账户链接; api应该工作。如果它不受限制地工作,那么你就是在正确的轨道上。

一旦将其限制为android,它将再次使用该密钥失败,直到您签署您的应用程序。我发现最简单的方法是在gradle文件中使用android下的变体的签名配置。

signingConfigs {
    debug {
        storeFile file("/users/xxxxxxxxxx/Android/keystores/google_demos/debugandroid.jks")
        storePassword "xxxxxxxxxx"
        keyAlias "com.example.xxxxxxxxxx"
        keyPassword "xxxxxxxx"
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.