2015-02-18 3 views
0

Привет я пытаюсь войти в твиттер с помощью twitter4j-жильный ... мой пример кода нижеполучать сообщение об ошибке: «Не удалось проверить OAuth подпись и маркер» в intregating твиттер от андроида

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    ....... 
    ..... 
    ... 
    .. 
    // Tell twitter4j that we want to use it with our app 
    ConfigurationBuilder builder = new ConfigurationBuilder(); 
    builder.setDebugEnabled(true); 
    builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
    builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET); 
    Configuration configuration = builder.build(); 
    TwitterFactory factory = new TwitterFactory(configuration); 
    twitter = factory.getInstance(); 


    /** 
    * Twitter login button click event will call loginToTwitter() function 
    * */ 
    btnTwitterLogoutLogin.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View arg0) { 

    if (isTwitterLoggedInAlready()) { 
    logoutFromTwitter(); 
      } else { 
    new LoginNewUser().execute(); 
    } 
    } 
}); 

} 

, если пользователь не находится -в и после нажатия btnTwitterLogoutLogin =>

class LoginNewUser extends AsyncTask<Void, Void, Void> { 

@Override 
protected Void doInBackground(Void... arg0) { 
    // TODO Auto-generated method stub 

    try { 

    requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL); 
    PostTwitter.this.startActivity(new Intent(Intent.ACTION_VIEW, 
               Uri.parse(requestToken.getAuthenticationURL()))); 
    } catch (TwitterException e) { 
    e.printStackTrace(); 
    } 
    return null; 
} 

} 

это показать это WebView Войти активность и перезвоните к текущему activity.So в onResume я сохранить маркер доступа и другие вещи, чтобы сохранить session.like это:

@Override 
protected void onResume() { 
    super.onResume(); 
    Log.i("TAG", "Arrived at onResume"); 
    dealWithTwitterResponse(); 
} 

private void dealWithTwitterResponse() { 
    Uri uri = getIntent().getData(); 
    if (uri !=null&&uri.toString().startsWith(TWITTER_CALLBACK_URL))      
     { 
      // If the// user// has// just// logged// in 
      String oauthVerifier = uri.getQueryParameter("oauth_verifier"); 
      Log.d("DEBUG", "loggged in"); 
      new SaveTokenAfterLogin().execute(oauthVerifier); 
      // in this method i save accesstoken for further use in sharepreferance 
     } 
    else 
     { 
     Log.d("DEBUG", "Not logged in"); 
     } 
    } 

этот код работает нормально в течение пары раз. но теперь он не работает. показан ниже:

02-18 07:55:56.885: W/System.err(6659): 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync. 
02-18 07:55:56.885: W/System.err(6659): Failed to validate oauth signature and token 
02-18 07:55:56.889: W/System.err(6659): Relevant discussions can be found on the Internet at: 
02-18 07:55:56.889: W/System.err(6659):  http://www.google.co.jp/search?q=8e063946 or 
02-18 07:55:56.889: W/System.err(6659):  http://www.google.co.jp/search?q=c60cdc4a 
02-18 07:55:56.889: W/System.err(6659): TwitterException{exceptionCode=[8e063946-c60cdc4a], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.2} 
02-18 07:55:56.893: W/System.err(6659):  at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:163) 
02-18 07:55:56.893: W/System.err(6659):  at twitter4j.HttpClientBase.request(HttpClientBase.java:53) 

что я делаю неправильно? i после этого урока http://blog.blundell-apps.com/sending-a-tweet/ спасибо заранее

+0

'Вам нужно создать приложение Twitter (занимает 2 минуты) на сайте Twitter: https: // dev.twitter.com/apps /' Вы сделали это? Получили ли вы потребительский ключ/секрет, который требуется вашему приложению для работы с twitter api? –

+0

да я сделал это. я сказал, что мой код работает нормально, когда я запускаю его напрямую, я имею в виду, когда я просто запускаю активность своего входа в твиттер, но когда я присоединяю эту активность к сервису, он не регистрирует меня в твиттере. – mohammadjubayer

+0

, когда я возвращаюсь с страницы входа с помощью обратного URL-адреса uri все еще null в методе dealWithTwitterResponse(), но это не должно быть null..i думаю, что есть проблема – mohammadjubayer

ответ

0

Проверьте правильность установки телефона. Эта ошибка может возникнуть, если время сервера и время машины не синхронизированы.