在twitter android应用程序中获取访问令牌时出错
我正在android应用程序中使用twitter4j。我正在使用带有消费者密钥和密码的代码,当我登录到twitter时,它会在第一次尝试时成功登录。但是,当我再次运行代码并重试时,正如我之前经过身份验证一样,它会让我登录,但随后给出“获取访问令牌时出错”。我不知道该怎么处理这件事。。有人能帮忙吗。。我正在使用此代码登录在twitter android应用程序中获取访问令牌时出错,android,twitter4j,Android,Twitter4j,我正在android应用程序中使用twitter4j。我正在使用带有消费者密钥和密码的代码,当我登录到twitter时,它会在第一次尝试时成功登录。但是,当我再次运行代码并重试时,正如我之前经过身份验证一样,它会让我登录,但随后给出“获取访问令牌时出错”。我不知道该怎么处理这件事。。有人能帮忙吗。。我正在使用此代码登录 public class TwitterLoginActivity extends Activity { TextView tv; But
public class TwitterLoginActivity extends Activity {
TextView tv;
Button loginBtn;
private TwitterApp mTwitter;
private ConnectionDetector cd;
ProgressDialog pDialog;
private static SharedPreferences mSharedPreferences;
AlertDialogManager alert = new AlertDialogManager();
RequestToken requestToken;
private static final String CONSUMER_KEY = "*****************";
private static final String CONSUMER_SECRET = "*****************************************";
static String PREFERENCE_NAME = "twitter_oauth";
static final String PREF_KEY_OAUTH_TOKEN = "oauth_token";
static final String PREF_KEY_OAUTH_SECRET = "oauth_token_secret";
static final String PREF_KEY_TWITTER_LOGIN = "isTwitterLogedIn";
static final String URL_TWITTER_AUTH = "auth_url";
static final String URL_TWITTER_OAUTH_VERIFIER = "oauth_verifier";
static final String URL_TWITTER_OAUTH_TOKEN = "oauth_token";
public void storeAccessToken(AccessToken aToken) {
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putString(PREF_KEY_OAUTH_TOKEN, aToken.getToken());
editor.putString(PREF_KEY_OAUTH_SECRET, aToken.getTokenSecret());
editor.commit();}
private enum FROM {
TWITTER_POST, TWITTER_LOGIN
};
private enum MESSAGE {
SUCCESS, DUPLICATE, FAILED, CANCELLED
};
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
setContentView(R.layout.twitter_login);
super.onCreate(savedInstanceState);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
mTwitter = new TwitterApp(this, CONSUMER_KEY, CONSUMER_SECRET);
requestToken = mTwitter.getOAuthRequestToken;
tv = (TextView) findViewById(R.id.welcome_txt);
loginBtn = (Button) findViewById(R.id.login_btn);
loginBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mTwitter.setListener(mTwLoginDialogListener);
mTwitter.resetAccessToken();
if (mTwitter.hasAccessToken() == true) {
postAsToast(null, null);
}
else {
mTwitter.authorize();
}
}
});
}
private void postAsToast(FROM twitterPost, MESSAGE success) {
switch (twitterPost) {
case TWITTER_LOGIN:
switch (success) {
case SUCCESS:
Toast.makeText(this, "Login Successful", Toast.LENGTH_LONG).show();
break;
case FAILED:
Toast.makeText(this, "Login Failed", Toast.LENGTH_LONG).show();
default:
break;
}
break;
}
}
private TwDialogListener mTwLoginDialogListener = new TwDialogListener() {
public void onError(String value) {
postAsToast(FROM.TWITTER_LOGIN, MESSAGE.FAILED);
Log.e("TWITTER", value);
mTwitter.resetAccessToken();
}
public void onComplete(String value) {
Intent intent = new Intent(TwitterLoginActivity.this,
TweetsListActivity.class);
startActivity(intent);
finish();
}
};
}
i have also used AlertDialogManager.java,ConnectionDetector.java classes in right manner. please help
请参阅此链接:
如果有任何疑问,请告诉我
它工作得很好…只要使用最新的jar文件就可以了
编辑:
只需在oncreate off活动中添加以下代码:
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
请参阅此链接:
如果有任何疑问,请告诉我
它工作得很好…只要使用最新的jar文件就可以了
编辑:
只需在oncreate off活动中添加以下代码:
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
我看不到编辑内容@OhlinI在你的问题中添加了
android
标签。问题的标题有点不清楚问题是关于什么的。是关于登录问题。当我给出消费者密钥和密码时,第一次登录成功。。但当我再次运行我的应用程序时,我已经用我的id和密码进行了身份验证,但并没有进入应用程序,而是显示“登录失败”。。并在Logcat中给出“获取访问令牌时出错”您的MainActivity在第123行包含什么?没有第123行。请指示您正在谈论的行,我看不到编辑内容@OhlinI在你的问题中添加了android
标签。问题的标题有点不清楚问题是关于什么的。是关于登录问题。当我给出消费者密钥和密码时,第一次登录成功。。但当我再次运行我的应用程序时,我已经用我的id和密码进行了身份验证,但并没有进入应用程序,而是显示“登录失败”。。并在Logcat中给出“获取访问令牌时出错”您的MainActivity在第123行包含什么?没有第123行。4.请把你说的这句话给我听好了。。能不能请你详细说明一下你在哪里度过的时光?嗨。我从您建议的链接下载了源代码,并在libs文件夹中添加了twitter4j-core-3.0.3.jar文件,替换了现有的twitter4j-core-android-2.2.jar,但它不起作用,迫使应用程序关闭。logcat中的错误链接到此,谢谢您的回答。。我不熟悉安卓系统。。这对我真的很有帮助。。谢谢,我有问题了。我的密码在这里。。我正在使用登录按钮登录twitter,成功登录后,我希望第二个活动应该打开。。但登录后,应用程序再次从登录页面启动,而不是直接进入第二个活动。下面是不获取此toast的代码toast.makeText(getApplicationContext(),“已登录twitter”,toast.LENGTH\U LONG.show();这对我很管用。。能不能请你详细说明一下你在哪里度过的时光?嗨。我从您建议的链接下载了源代码,并在libs文件夹中添加了twitter4j-core-3.0.3.jar文件,替换了现有的twitter4j-core-android-2.2.jar,但它不起作用,迫使应用程序关闭。logcat中的错误链接到此,谢谢您的回答。。我不熟悉安卓系统。。这对我真的很有帮助。。谢谢,我有问题了。我的密码在这里。。我正在使用登录按钮登录twitter,成功登录后,我希望第二个活动应该打开。。但登录后,应用程序再次从登录页面启动,而不是直接进入第二个活动。下面是不获取此toast的代码toast.makeText(getApplicationContext(),“已登录twitter”,toast.LENGTH\U LONG.show();