Ошибка в твиттере Android - истекает запрос токена - PullRequest
0 голосов
/ 03 ноября 2010
private static String requestToken;
 private static String requestSecret;

 public static void loginTwitter(Context mycontext) {

  if (savedToken==null) {
   try {
    consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    provider = new CommonsHttpOAuthProvider("https://api.twitter.com/oauth/request_token",
              "https://api.twitter.com/oauth/access_token",
              "https://api.twitter.com/oauth/authorize");

    String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
    Toast.makeText(mycontext, "login to twitter", Toast.LENGTH_LONG).show();

    mycontext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));

   } catch (Exception e) {
    Log.e(APP, e.getMessage());
   }
  } else {

   tweetShareURL();
  }
 }

 private static void tweetShareURL() {

  twitter = new TwitterFactory().getInstance();
  twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
  twitter.setOAuthAccessToken(savedToken);

  // create a tweet
  String tweet = title+" " + url;

  try {
   twitter.updateStatus(tweet);
  } catch (TwitterException e) {
   Log.e(APP, "2 "+e.getMessage());

  } finally {
   utils.hint("tweet sent!");
  }


 }

 static AccessToken savedToken=null;

 @Override
 protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);

  Uri uri = intent.getData();
  Log.e("URI", ""+uri.toString());

  if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {

   String verifier = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER);
   Log.e("verifier", ""+verifier);

   try {
    requestToken  = consumer.getToken();
    requestSecret = consumer.getConsumerSecret();

    consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    consumer.setTokenWithSecret(requestToken, requestSecret);

    provider = new CommonsHttpOAuthProvider("https://api.twitter.com/oauth/request_token",
              "https://api.twitter.com/oauth/access_token",
              "https://api.twitter.com/oauth/authorize");
    provider.setOAuth10a(true);

    // TODO: you might want to store token and token_secret in you app settings!!!!!!!!
    savedToken = new AccessToken(requestToken, requestSecret);

    provider.retrieveAccessToken(consumer, verifier);

    Log.e(APP, "2");

    tweetShareURL();

   } catch (Exception e) {
    Log.e(APP, "1 "+e.getMessage());
   }

  }
 }

всегда получайте следующие строки:

11-02 22: 36: 39.526: ОШИБКА / OAUTH (424): 2 401: учетные данные для проверки подлинности отсутствовали или были неверными. 11-02 22: 36: 39.526: ОШИБКА / OAUTH (424): {"error": "Invalid \ / expired Token", "request": "\ / 1 \ / statuses \ /update.json"}

почему?

1 Ответ

0 голосов
/ 15 апреля 2011

"\/1\/statuses\/update.json" Когда у вас есть что-то в кавычках, оно отправляет все в кавычках в виде строки.Таким образом, возможно, мешающий символ \ мешает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...