twitter jsOAuth获取请求令牌返回401错误

时间:2013-04-04 13:48:36

标签: twitter titanium titanium-mobile jsoauth

申请类型:手机, 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 

任何想法可能是什么问题?我被封锁了

1 个答案:

答案 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