Javascript 为什么;response.result是未定义的“;来自Youtube数据Api 3?

Javascript 为什么;response.result是未定义的“;来自Youtube数据Api 3?,javascript,youtube-api,youtube-javascript-api,youtube-channels,Javascript,Youtube Api,Youtube Javascript Api,Youtube Channels,我将Youtube API v3与jasvascript一起使用 我有一个简单的代码 <script type="text/javascript"> function googleApiClientReady() { var viewCount, channelName, subscribers; gapi.client.load('youtube', 'v3', function() { var request =

我将Youtube API v3与jasvascript一起使用

我有一个简单的代码

<script type="text/javascript"> 
    function googleApiClientReady() {
        var viewCount, channelName, subscribers;
        gapi.client.load('youtube', 'v3', function() {
            var request = gapi.client.youtube.channels.list({
                part: 'statistics',
                forUsername : 'GameSprout'
            });
            request.execute(function(response) {
                viewCount = response.result.items[0].statistics.viewCount;

            });
        });
    }
</script>
<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>
是:


您尚未设置API密钥,这是只读(即没有oAuth)调用所需的。在调用gapi.client.load之前,必须执行以下操作:

gapi.client.setApiKey(“这里是您的密钥”)

见:

有关文件

如果愿意,您还可以对传递给请求的对象使用
参数,但是如果您执行的调用不止一次,您最好在客户端实例上设置它

下面是从云控制台获取上述API密钥的快速介绍:


此时的
响应是什么?试试
console.log(response)
@nnnn我用你的想法编辑我的帖子。好的。现在您可以看到,
response
是一个没有
result
属性的对象,这就是为什么会出现“response.result is undefined”错误。也许在您尝试使用响应之前,您需要测试
响应。code
以查看它是否指示错误?请参阅帖子,我们有答案,谢谢您的帮助@nnnnnn:)好的,它工作正常!非常感谢。最后一个问题:为什么google explorer在没有开发密钥的情况下工作?api explorer web应用程序将使用它们的密钥(除非请求需要权限,在这种情况下,您必须使用oAuth按钮),因为javascript密钥通常有一个附加的源(即,如果您的密钥的源是example.com,那么它在api explorer中根本不工作)。
console.log(response)
Object {code: 403, message: "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.", data: Array[1], error: Object}
code: 403
data: Array[1]
error: Object
message: "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
__proto__: Object