为什么Youtube Data Api 3中的“response.result未定义”?

时间:2014-01-16 22:27:26

标签: javascript youtube-api youtube-javascript-api youtube-channels

我使用Youtube API v3和jasvascript

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=statistics&forUsername=GameSprout&_h=8&

我有这个简单的代码

<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>

但我有这个错误:

  

TypeError:response.result未定义

如何解决这个问题?

修改

响应:

console.log(response)

IS:

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

1 个答案:

答案 0 :(得分:4)

您尚未设置API密钥,这是只读(即没有oAuth)调用所需的。在调用gapi.client.load之前,你必须这样做:

gapi.client.setApiKey( “YOUR_KEY_HERE”);

请参阅:

https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientsetApiKey

用于文档。

如果你愿意,你也可以在传递给你的请求的对象上使用key参数,但是如果你做过多次调用,你也可以在客户端实例上设置它

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

https://plus.google.com/+YouTubeDev/posts/BBkwPXP94JB