请在下面找到我在一个项目中使用的代码。我无法从API获取youtube视频。我正在使用刷新令牌生成访问令牌。
首先,我调用负载客户端函数,在此函数中,我传递刷新令牌以获取访问令牌。我成功获取了可以在屏幕截图中看到的访问令牌:
但是每当我使用生成的访问令牌调用youtube广播列表API函数时,都会出现需要登录的错误。
能否请您指导并协助我解决此错误。我一直陷在这个问题上。我只需要YouTube频道视频列表。
function loadClient() {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v4/token',
method: 'POST',
async:false,
data:{
grant_type=refresh_token
client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
client_secret=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
refresh_token=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
},
beforeSend: function(xhr) {
}, success: function(data){
genAccessToken = data.access_token;
}
})
gapi.client.setApiKey("AIzaSyByU9IHgjlmfSV3657vBi3yXXXXXXXXXX");
return gapi.client.load("https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest")
.then(function() { console.log("GAPI client loaded for API"); console.log(genAccessToken); execute();},
function(err) {
console.error("Error loading GAPI client for API", err);
}); }
function execute() {
console.log('responsessss');
return gapi.client.youtube.liveBroadcasts.list({
"part": "snippet",
"broadcastStatus": "active",
"broadcastType": "all",
"maxResults":3
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
// console.log("Response", response);
console.log("Response", response.result.items.length);
console.log("Response", response.result.items);
},
function(err) { console.error("Execute error", err); }); }