我正在向youtube api发送一个删除请求,但是我收到了一个401错误(未经授权)。我不知道为什么。我的密钥设置正确,我能够访问youtube频道的分析。这是我的代码,按一下按钮就会触发。
jQuery.ajax({
type: 'DELETE',
// must set api key
url: 'https://www.googleapis.com/youtube/v3/videos?id='+ thisUniqueID + '&key={<?php echo $oAuth2Key; ?>}',
}); 我使用了警报来检查我的auth键是否设置正确(如下所示)。
alert('<?php echo $oAuth2Key; ?>');我可以在返回的地址中看到错误,即url是正确的。有什么问题吗?
看来我需要一个刷新令牌。这是直接从文档中得到的:如果您提交了使用过期访问令牌访问受保护资源的请求,API将返回一个HTTP 401响应代码(未经授权)。下一节解释如何刷新访问令牌。
在我发送删除请求的同时,是否有一种简单的方法来检索刷新令牌?如果没有,是否有一种简单的方法可以检索出不需要客户端id/客户端机密等。
我以某种方式得到了一个用于分析的密钥,但是当我删除一个视频时,这个键是无效的。
发布于 2013-09-10 19:34:03
发布于 2013-09-11 01:29:16
您可以在以下站点找到使用授权的文档:https://developers.google.com/youtube/v3/guides/authentication
您可以使用API密钥访问公共数据!
因为要删除视频,所以必须使用access_token。access_token有效时间短(1小时)。您可以使用您的refresh_token请求另一个新的。
存储refresh_token,因为它在被撤销之前是有效的。
顺便说一下。
Maybe use client.js, to handle the authorization for your requests ?
For JS, by adding:
<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>一般文档位于:https://developers.google.com/api-client-library/javascript/start/start-js
YouTube的一个代码示例是:samples/javascript
有关视频删除方法的参考,请参阅:https://developers.google.com/youtube/v3/docs/#videos
列出的方法有:插入、列表、删除、更新、速率和getRating。
删除方法可能是(没有使用有效的videoID进行测试):
var requestOptions = {
id: '012345678901', // replace VIDEOID
part: 'id'};
var request = gapi.client.youtube.videos.delete (requestOptions);
request.execute(function(response) {
console.log("RESPONSE: " + response);
});使用不存在的videoId的响应是:
[
{
"error": {
"code": -32500,
"message": "Video not found",
"data": [
{
"domain": "youtube.video",
"reason": "videoNotFound",
"message": "Video not found",
"locationType": "parameter",
"location": "id"
}
]
},
"id": "gapiRpc"
}
]https://stackoverflow.com/questions/18726578
复制相似问题