Twitter登录Cordova和Angularjs:401未经授权的错误

时间:2015-12-28 10:34:46

标签: angularjs cordova twitter twitter-oauth ngcordova

我试图在用户通过此链接登录后获取用户详细信息 - https://api.twitter.com/1.1/account/verify_credentials.json

首先我要求 oauth_token ,第二步我要求签名,最后我尝试使用 oauth_token和签名<获取用户数据/ strong>即可。在最后一次通话中,我收到&#34; 401未经授权的错误&#34;

我使用过这个cordova插件 - http://ngcordova.com/docs/plugins/oauth/

我想为Android和ios生成APK。我正在使用cordova CLI生成apk。

这是我的代码 -

class TwitterLoginCtrl extends BaseCtrl
  @register 'TwitterLoginCtrl'

  @inject '$scope', '$ionicPopup', 'WtaLoading', '$ionicLoading','$cordovaOauth','$http','$cordovaOauthUtility'

  initialize: ->
    @$scope.twitterSignIn = @twitterSignIn

  twitterSignIn: =>
    alert 'Twitter Nisarg'
    @$cordovaOauth.twitter('[consumer key]','consumer secret').then ((result) =>
      console.log JSON.stringify(result)

      oauthObject =
        oauth_consumer_key: '[consumer key]'
        oauth_nonce: @$cordovaOauthUtility.createNonce(10)
        oauth_signature_method: 'HMAC-SHA1'
        oauth_timestamp: Math.round((new Date).getTime() / 1000.0)
        oauth_version: '1.0'
        oauth_token: result.oauth_token
      signatureObj = @$cordovaOauthUtility.createSignature('GET', 'https://api.twitter.com/1.1/account/verify_credentials.json', oauthObject, oauthObject)

      @$http(url: 'https://api.twitter.com/1.1/account/verify_credentials.json', method: 'GET' , params: angular.extend(oauthObject, oauth_signature: signatureObj.signature), format: "json"). then (data) => **// THIS CALL THROWS 401 UNAUTHORIZED ERROR**
        console.log JSON.stringify(data)
    ), (error) ->
      console.log error

修改

@$cordovaOauth.twitter('[consumer key]','consumer secret').then ((result) =>

以上电话给我这个结果=&gt;

{
 "oauth_token":[access-token], 
 "oauth_token_secret":[access_token_secret], 
 "user_id":"4629415817", 
 "screen_name":"napster", 
 "x_auth_expires":"0"
}

每次我获得 x_auth_expires 。可以吗?

1 个答案:

答案 0 :(得分:0)

根据 documentation

错误代码&amp;回应 列出的HTTP状态代码显示enter image description here

当我提到Twitter OAuth : Invalid or expired token [its NOT duplicate]时,一旦获得回调,请使用新的访问令牌再次初始化该类。