【发布时间】:2012-01-14 12:37:01
【问题描述】:
我正在为 Google Chrome 创建一个扩展程序,但在使用 Twitter 进行身份验证时遇到问题。
此扩展发布于this link:
如您所见,我也在使用 Dropbox API(它也适用于 OAuth 1.0)并且它运行良好!
要使用 OAuth,请使用名为 jsOAuth 的库,该库位于 this link。
当用户点击“推特”时,会出现一个窗口(弹窗),看起来是真实的:
//Request Windows token
chrome.windows.create({url: url, type:"popup"}, function(win){
chrome.tabs.executeScript(win.tabs[0].id, { file: "/scripts/jquery-1.7.1.min.js" }, function() {
chrome.tabs.executeScript(win.tabs[0].id, { file: "/scripts/querystring-0.9.0-min.js" }, function() {
chrome.tabs.executeScript(this.args[0], { file: "/scripts/services/TwitterPage.js" });
});
});
});
url = _https://api.twitter.com/oauth/authorize?oauth_token=XXX&oauth_token_secret=YYY&oauth_callback_confirmed=true_
TwitterPage.js 代码
$(document).ready(function() {
$("#allow").click(function(){
var token = $.QueryString("oauth_token");
var secret = $.QueryString("oauth_token_secret");
var data = { oauth_token: token, oauth_secret: secret };
chrome.extension.sendRequest(data);
});
});
然后显示认证窗口
完整链接:http://i.imgur.com/tikh4.png
正如您在上面的代码中看到的那样,向我的扩展程序发送了一个请求。 以下是捕获此请求的代码:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
chrome.windows.remove(sender.tab.windowId, fetchAccessToken);
});
fetchAccessToken 函数:
fetchAccessToken = function() {
oauthObj.fetchAccessToken(function(){
console.log("This code is only executed when debug step by step")
}, failureHandler);
}
查看控制台,显示错误:GET https://api.twitter.com/oauth/access_token 401 (Unauthorized)
完整图片:http://i.stack.imgur.com/8MgNw.png
问题
怎么了?
一步步调试,认证成功!?!为什么?
【问题讨论】:
标签: oauth google-chrome-extension twitter-oauth