我正在使用Youtube Data V3 Javascript API制作Chrome扩展程序。我的问题是,我的帐户一切正常,但如果我将应用程序提供给其他人,则会出现错误403.
问题当然是因为没有显示提供应用程序帐户访问权限的弹出窗口。但事实是我正在使用Youtube提供的代码来授予访问权限。 (这一个:https://developers.google.com/youtube/v3/code_samples/javascript#authorizing_requests)
令牌仅用于我的选项页面。
这是我的代码:
的manifest.json:
{
"manifest_version": 2,
"name": "Youtube Subsfeed Sorter",
"description": "YSS",
"version": "1.6",
"options_ui":
{
"page": "options.html"
},
"icons":
{
"128": "LogoYSS.png"
},
"browser_action":
{
"default_popup": "popup.html"
},
"content_security_policy": "script-src https://*.google.com 'unsafe-eval'; object-src 'self'",
"content_scripts":
[
{
"matches": [ "*://www.youtube.com/*" ],
"css" : ["./css/contentScript.css"],
"js": ["./lib/jquery-3.1.0.min.js", "contentScript.js"],
"run_at":"document_start",
"all_frames": true
}
],
"background":{
"scripts": ["background.js"],
"persistent": false
},
"permissions":
[
"*://www.youtube.com/*",
"*://apis.google.com/*",
"identity",
"storage",
"tabs",
"activeTab"
],
"oauth2":
{
"client_id":"MyClientId",
"scopes":
[
"https://www.googleapis.com/auth/youtube.readonly"
]
},
"key": "MyKey"
}
Options.html
<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<html>
<head>
<title>Jstree Options text</title>
<link href="./css/font-awesome.min.css" rel="stylesheet" />
<link href="./css/options.css" rel="stylesheet" />
<link href="./css/themes/default/style.min.css" rel="stylesheet" />
<script type="text/javascript" src="./lib/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="./lib/jstree.min.js"></script>
<script type="text/javascript" src="./lib/auth.js"></script>
<script type="text/javascript" src="options.js"></script>
<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>
</head>
<body>
<div id="tab-menu" >
<div id="title">
<p><img src="LogoYSS.png">Options</img></p>
<ul class="menu">
<li><a id="tab-menu-button" href="#">Onglets</a></li>
<li><a id="showing-menu-button" href="#">Affichage</a></li>
</ul>
</div>
<div id="Container">
<div id="ContainerLeft">
<form>
<p style="font-weight: bold;">Créer un nouvel onglet :</p>
<input type="text" id="newtabname" name="newtabename">
<button type="button" class="button" id="newtabadd"><i class="fa fa-plus fa-2x" aria-hidden="true" ></i></button>
<p>
<button type="button" class="button" id="save"><i class="fa fa-save fa-2x" aria-hidden="true" ></i></button>
<button type="button" class="button" id="expandall"><i class="fa fa-expand fa-2x" aria-hidden="true" ></i></button>
<button type="button" class="button" id="collapseall"><i class="fa fa-compress fa-2x" aria-hidden="true" ></i></button>
</p>
</form>
<div id="tab"></div>
</div>
<div id="channel"></div>
</div>
</div>
<div id="showing-menu">
<input type="color">Choisir la couleur de fond de la page youtube</input>
</div>
</body>
</html>
我的Options.js的一部分:
function handleAPILoaded()
{
init();
requestUserSubscriptionList("");
}
function requestUserSubscriptionList(nextPageToken)
{
var request = gapi.client.youtube.subscriptions.list({
part: 'snippet',
maxResults: 50,
mine: true,
fields: 'items,nextPageToken',
order: 'alphabetical',
pageToken: nextPageToken
});
request.execute(function(responseCallBack)
{
nextPageToken = responseCallBack.nextPageToken;
$.each(responseCallBack.items,function(index,item)
{
if(!/.png/i.test(item.snippet.thumbnails.default.url))
{
var subNode = {"id" : item.snippet.title , "text": item.snippet.title, "icon" : item.snippet.thumbnails.default.url, "type" : "ChannelSub", "data" : {"channelId" : item.snippet.resourceId.channelId}};
$('#channel').jstree().create_node('#',subNode,"last",function(){});
}
});
if(nextPageToken)
{
requestUserSubscriptionList(nextPageToken);
}
});
}
所以,如果有人能给我一些帮助,我会非常感激。
编辑1: 这是我没有连接时得到的错误(这是我朋友们的错误数据)
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
希望有所帮助。