Google chrome extension chrome.identity和YouTube v3 API?
我想知道YouTube的V3API和通过chrome.identity提供的OAuth2支持是否配合得很好 我似乎不明白。查看:它们似乎采用了客户机ID和作用域,很像我正在传递到manifest.json中 我能用我的OAuth2身份令牌做些什么吗?还是我必须完全通过YouTube的授权流程 更新:我现在可以用YouTube的方式获取数据,但不是用我想要的方式Google chrome extension chrome.identity和YouTube v3 API?,google-chrome-extension,Google Chrome Extension,我想知道YouTube的V3API和通过chrome.identity提供的OAuth2支持是否配合得很好 我似乎不明白。查看:它们似乎采用了客户机ID和作用域,很像我正在传递到manifest.json中 我能用我的OAuth2身份令牌做些什么吗?还是我必须完全通过YouTube的授权流程 更新:我现在可以用YouTube的方式获取数据,但不是用我想要的方式 gapi.auth.authorize({ client_id: '{CLIENT ID}.apps.googleuserc
gapi.auth.authorize({
client_id: '{CLIENT ID}.apps.googleusercontent.com',
scope: 'https://www.googleapis.com/auth/youtube',
// Set to false on first run to get pop-up interactivity
immediate: true
}, function (authResult) {
//console.log("Auth Result:", authResult);
gapi.client.load('youtube', 'v3', function () {
var request = gapi.client.youtube.channels.list({
mine: true,
part: 'contentDetails'
});
request.execute(function(response) {
console.log("response:", response);
});
});
});
My manifest.json具有:
"oauth2": {
"client_id": "{CLIENT ID}.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/youtube",
"https://www.googleapis.com/auth/youtube.readonly",
"https://www.googleapis.com/auth/youtube.upload",
"https://www.googleapis.com/auth/youtubepartner"
]
},
"permissions": [
"identity"
}
}
通过Google Javascript API的OAuth2是一个独立于API的过程。identity API使用扩展id生成唯一的访问令牌 您必须选择一个进程而不是另一个进程,它们的访问令牌将无法相互使用。
我目前正在分析服务中使用JavaScriptOAuth2,因为chrome.identity过程需要将扩展提交到ChromeWebStore。JavaScript过程的缺点是需要我为用户生成登录流。试试“gapi.auth.setToken”:。首先调用chrome.identity.getAuthToken(首先在manifest.json中声明正确的客户端id和作用域)。在回调中,使用gapi.auth.setToken设置OAuth 2令牌。非常感谢。你是个圣人。这正是我要找的。除了它似乎不喜欢auth令牌:(我想我会使用chrome.identity进程,因为将我的所有权限请求保存在一个位置是有意义的。您有关于如何使用chrome.identity OAuth2键与YouTube JavaScript API接口的任何信息吗?@SeanAnderson您最有可能需要根据文档创建一个新的客户端ID,回答中的链接)。另外,请注意。对于这个主题可能需要的冗长对话,Google groups可能是更好的论坛。如果你开始分享链接,这是一个我很快就会处理的主题。你有没有进一步研究过这个问题?我已经找到了解决方案,但这是一个非常明显的安全问题。请看这里:@SeanAnderson抱歉我没有。