Javascript 为什么;response.result是未定义的“;来自Youtube数据Api 3?
我将Youtube API v3与jasvascript一起使用 我有一个简单的代码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 =
<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