twitter4j没有发现任何身份验证的挑战 [英] twitter4j no authentication challenges found
本文介绍了twitter4j没有发现任何身份验证的挑战的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一直试图用twitter4j发布鸣叫了几天,现在没有运气,我想要做的是一个人来发布他们的新的最高分,从应用程序的时间轴上,在一个回合结束。这是我的code
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_tweetr);
按钮tweetr =(按钮)findViewById(R.id.tweetr);
//使用用户信息创建一个新的Twitter的配置
tweetTwitter =新TwitterFactory()的getInstance()。
tweetTwitter.setOAuthConsumer(TWIT_KEY,TWIT_SECRET);
//创建一个Twitter实例
// tweetTwitter =新TwitterFactory(twitConf).getInstance();
tweetr.setOnClickListener(新View.OnClickListener(){
@覆盖
公共无效的onClick(视图v){
dt.execute();
}
});
}
公共类TweetTask扩展的AsyncTask<对象,太虚,字符串> {
@覆盖
保护字符串doInBackground(对象...值){
/* 尝试 {
// requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
}赶上(TwitterException E){
// TODO自动生成的catch块
e.printStackTrace();
}
startActivity(新意图(Intent.ACTION_VIEW,Uri.parse(requestToken.getAuthenticationURL())));
* /
尝试 {
requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
串authUrl = requestToken.getAuthenticationURL();
startActivity(新意图(Intent.ACTION_VIEW,Uri.parse(authUrl)));
}赶上(TwitterException E){
// TODO自动生成的catch块
e.printStackTrace();
}
返回null;
}
@覆盖
保护无效onPostExecute(字符串结果){
Log.d(URI,DONE);
super.onPostExecute(结果);
}
}
@覆盖
保护无效onResume(){
super.onResume();
最后开放的URI = getIntent()的getData()。
如果(URI!= NULL){
Log.d(URI,uri.toString());
主题日=新的Thread(){
公共无效的run(){
尝试 {
串验证= uri.getQueryParameter(oauth_verifier);
串oauthToken = uri.getQueryParameter(oauth_token);
RequestToken reqToken = tweetTwitter.getOAuthRequestToken(oauthToken,验证);
AccessToken accessToken = tweetTwitter.getOAuthAccessToken(reqToken);
字符串标记= accessToken.getToken(),秘= accessToken.getTokenSecret();
}赶上(TwitterException前){
Log.e(Main.onNewIntent,+ ex.getMessage());
}
}};
th.start();
}其他
Log.d(URI,失败);
}
}
这是我的错误打印出
10-23 15:35:18.661:D / TWIT ER(2392):无验证挑战foundRelevant讨论,可以访问Internet上找到:
解决方案
为了获得进入收购AccessToken使用XAUTH,您必须通过发送电子邮件至api@twitter.com€所有其他应用程序将收到一个HTTP 401错误申请。
Been trying to use twitter4j to post a tweet for couple days now without luck, what i want to do is for a person to post their new top score on their timeline from the app at the end of a round. Here is my code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tweetr);
Button tweetr = (Button)findViewById(R.id.tweetr);
//create a new twitter configuration using user details
tweetTwitter = new TwitterFactory().getInstance();
tweetTwitter.setOAuthConsumer(TWIT_KEY, TWIT_SECRET);
//create a twitter instance
// tweetTwitter = new TwitterFactory(twitConf).getInstance();
tweetr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dt.execute();
}
});
}
public class TweetTask extends AsyncTask<Object, Void, String> {
@Override
protected String doInBackground(Object... values) {
/* try {
//requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
*/
try {
requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
String authUrl = requestToken.getAuthenticationURL();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
Log.d("URI", "DONE");
super.onPostExecute(result);
}
}
@Override
protected void onResume() {
super.onResume();
final Uri uri = getIntent().getData();
if(uri != null ){
Log.d("URI", uri.toString());
Thread th = new Thread(){
public void run(){
try {
String verifier = uri.getQueryParameter("oauth_verifier");
String oauthToken = uri.getQueryParameter("oauth_token");
RequestToken reqToken = tweetTwitter.getOAuthRequestToken(oauthToken,verifier);
AccessToken accessToken = tweetTwitter.getOAuthAccessToken(reqToken);
String token = accessToken.getToken(), secret = accessToken.getTokenSecret();
} catch (TwitterException ex) {
Log.e("Main.onNewIntent", "" + ex.getMessage());
}
}};
th.start();
}else
Log.d("URI", "FAILED");
}
}
This is my error print out
10-23 15:35:18.661: D/TWIT ER(2392): No authentication challenges foundRelevant discussions can be found on the Internet at:
解决方案
refer to the javadoc of Twitter4J
In order to get access acquire AccessToken using xAuth, you must apply by sending an email to api@twitter.com â€" all other applications will receive an HTTP 401 error.
这篇关于twitter4j没有发现任何身份验证的挑战的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文