申请类型:手机, Titanium SDK:3.0.2.GA, 平台&版本:Android 4.0.4, 设备:Android Xperia P,
我试图通过jsOAuth 1.3.6使用twitter API。在获取请求令牌(oAuthApi.fetchAccessToken()方法)之前,所有OAuth舞蹈都会顺利进行。我总是得到“未经授权”的错误任何想法为什么?请参阅下面的代码
oAuthApi.fetchRequestToken(function(data) {
//authorize
var authorizeUi = Ti.UI.createWebView({
width : Ti.UI.FILL,
height : Ti.UI.FILL,
top : 0,
left : 0,
url : data
});
authorizeUi.addEventListener('load', function(e) {
if (authorizeUi.getUrl().indexOf('twitterOauthCallback') > -1) {
oAuthApi.fetchAccessToken(function(data) {
oAuthApi.saveAccessToken();
oAuthApi.setAuthorised(true);
var accessToken = oAuthApi.getAccessToken();
var accessTokenSecret = oAuthApi.getAccessTokenSecret();
...some other code here
}, function(data) {
alert('fetchAccessToken unauthorized error ' + data.error);
});
}
});
}, function(data) {
alert('fetchRequestToken error');
});
这是我的jsOAuth初始化:
var oauth = OAuth({
consumerKey : jsonObj.consumerKey,
consumerSecret : jsonObj.consumerSecret,
callbackUrl : jsonObj.callbackUrl
});
我的回调是
http://192.168.1.116:8888/callback/twitterOauthCallback.html
1-我调用fetchRequestToken(ok) 2-我打开用户授权/登录窗口(确定) 3 - 输入用户名和密码并获取回调网址(确定) 4 - 调用fetchAccessToken(获取401错误)
下面是我的标题:
oauth_callback = http://192.168.1.74:8888/callback/twitterOauthCallback.html
oauth_consumer_key = E3xxxxxxxxxxxxxxHfg
oauth_token = J1fxxxxxxxxxxxxxxxxxxxxxxxxxxxx20
oauth_signature_method = HMAC-SHA1
oauth_timestamp = 1365151792
oauth_nonce = 36222C667E353A51
oauth_verifier =
oauth_version = 1.0
任何想法可能是什么问题?我被封锁了
答案 0 :(得分:1)
本周,Twitter对oauth做出了突然而未经宣布的变更:https://dev.twitter.com/discussions/16443
查看标题,问题是您的oauth_verifier
值为空,现在更改会强制执行此值。您可以使用回调网址作为参数(http://192.168.1.116:8888/callback/twitterOauthCallback.html?oauth_token=xxx&oauth_verifier=xxx
)