【问题标题】:Why "response.result is undefined" from Youtube Data Api 3?为什么 Youtube Data Api 3 中的“response.result 未定义”?
【发布时间】:2014-02-06 02:16:31
【问题描述】:

我将 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)

是:

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

【问题讨论】:

  • 那时response 是什么?试试console.log(response)
  • @nnnnnn 我用你的想法编辑我的帖子。
  • 好的。所以现在你可以看到response 是一个没有result 属性的对象,这就是你得到“response.result is undefined”错误的原因。也许在您尝试使用响应之前,您需要测试response.code 以查看它是否指示错误?
  • 查看帖子,我们有答案,感谢您的帮助@nnnnnn :)

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


【解决方案1】:

您尚未设置 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

【讨论】:

  • 好的,一切正常!多谢。最后一个问题,为什么 google explorer 在没有开发密钥的情况下工作?
  • api explorer web 应用程序将使用他们的密钥(除非请求需要权限,在这种情况下您必须使用 oAuth 按钮),因为 javascript 密钥通常具有附加到它的来源(即,如果您的密钥的来源是 example.com,那么它在 api explorer 中根本不起作用)。
猜你喜欢
  • 1970-01-01
  • 2013-08-13
  • 2013-06-08
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2012-10-04
相关资源
最近更新 更多