我正在为Google Chrome创建一个扩展,在Twitter上进行身份验证时遇到了问题。
此扩展以this link格式发布:
如你所见,我也在使用Dropbox API (它也适用于OAuth 1.0),它工作得很好!
要使用OAuth,请使用this link上提供的一个名为jsOAuth的库。
当用户点击"Twitter“时,会出现一个窗口(弹出窗口),显示为authentic:
//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" });
});
});
});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
问题
怎么啦?
分步调试,认证成功!?!为什么?
发布于 2012-01-14 12:37:02
GET /oauth/access_token被请求了两次。一个成功,另一个失败,因为request_token只有一次有效,所以它可能正在获取401。如果您阻止它执行两次,它应该是好的。
顺便说一句,即使在获取access_token的同时,也包含了oauth_callback。这不是首选。
https://stackoverflow.com/questions/8855387
复制相似问题