限制在Android时,YouTube API密钥会出现500错误

Bri*_*ian 1 android youtube-api youtube-data-api

我很难用一个专门在Android上使用的密钥来查询YouTube搜索API.似乎当我从此密钥中删除限制时,请求正常.当我尝试将其锁定并按照此解决方案中的描述发送证书和程序包标头时,我收到一个非常无用的500错误:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "internalError",
                "message": "Internal Error"
            }
        ],
        "code": 500,
        "message": "Internal Error"
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我在cURL表单中尝试的请求,其中包含私人信息:

curl -X GET \
  'https://www.googleapis.com/youtube/v3/search/?q=songs&maxResults=25&key=my_api_key&part=snippet' \
  -H 'x-android-cert: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx' \
  -H 'x-android-package: com.xx.xx'
Run Code Online (Sandbox Code Playgroud)

此API 的文档表明仅在StackOverflow上提供支持.是否有任何Google工程师可以帮助我理解为什么会失败?

Bri*_*ian 9

经过一些试验和错误后,这似乎是由x-android-cert标头中发送的指纹格式引起的.它不需要接受开发控制台(AB:CD:EF:01:23:...)所需的相同格式,而是需要作为小写的十六进制字符串(abcdef0123...)发送.希望这有助于下一个不幸遇到这个问题的灵魂.