twitter4j没有发现任何身份验证的挑战 [英] twitter4j no authentication challenges found

查看:184
本文介绍了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上找到:
 

解决方案

参阅的javadoc Twitter4J的

 为了获得进入收购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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆