0

应用程序类型:移动,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- 我打开用户授权/登录窗口 (ok) 3 - 输入用户名和密码并获取回调 url (ok) 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 

知道可能是什么问题吗?我被封锁了

4

1 回答 1

1

Twitter 本周对 oauth 进行了突然且未经宣布的更改:https ://dev.twitter.com/discussions/16443

查看标题,问题在于您的oauth_verifier值是空的,而现在更改强制执行此值。您将使用回调 URL 作为参数 ( http://192.168.1.116:8888/callback/twitterOauthCallback.html?oauth_token=xxx&oauth_verifier=xxx)

于 2013-04-05T13:24:34.570 回答