微博4J发现无验证挑战,有关讨论可以在网络异常发现 [英] Twitter 4j No authentication challenges found, Relevant discussions can be found at internet Exception

查看:317
本文介绍了微博4J发现无验证挑战,有关讨论可以在网络异常发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用twitter4j

,我能够成功登录到我的Twitter账户,但是当我试图张贴一些东西以下异常。

我的code

 尝试
        {        位图bmpFinal = getBitmapFromURL(Imagename.trim());
        Log.d(的ImagePath,Imagename);        配置的conf =新ConfigurationBuilder()
        .setOAuthConsumerKey(TWITTER_CONSUMER_KEY)
        .setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET)
        .setOAuthAccessToken(的access_token)
        .setOAuthAccessTokenSecret(access_token_secret)
        .setMediaProviderAPIKey(320954b8bf13ffd7463a4dbe667b9dd2)
        。建立();        乌里tempUri = getImageUri(getApplicationContext(),bmpFinal);        文件finalFile =新的文件(getRealPathFromURI(tempUri)); //这是非常重要的。 TWITPIC需要图像的实际/绝对路径。只是URI不工作!!!!        ImageUpload上传=新ImageUploadFactory(CONF).getInstance(MediaProvider.TWITPIC);        字符串URL = upload.upload(finalFile);
        Log.e(推特网址反应,URL);
        Log.d(推特网址反应,URL);
        // END第一步:        //第二步是上传到Twitter        ConfigurationBuilder建设者=新ConfigurationBuilder();        builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
        builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);        的accessToken的accessToken =新的accessToken(的access_token,access_token_secret);
        叽叽喳喳叽叽喳喳=新TwitterFactory(builder.build())的getInstance(的accessToken)。        字符串finalStatusWithURL = NULL;        如果(status.trim()长度()大于0){            finalStatusWithURL =状态+:\\ n+网址;        }其他{
            finalStatusWithURL =网址;
        }
        twitter4j.Status响应= twitter.updateStatus(finalStatusWithURL);
        Log.e(推特回应,response.getText());
        }
        赶上(例外五)
        {
            Log.d(异常,+ E);
        }
        返回null;
    }

logcat的异常

  12月6日至14日:51:31.117:D /异常(3302):未找到验证挑战
12月6日至14日:51:31.117:D /异常(3302):相关讨论可以在互联网上上找到:
12月6日至14日:51:31.117:D /异常(3302):http://www.google.co.jp/search?q=ea09dc6d或
12月6日至14日:51:31.117:D /异常(3302):http://www.google.co.jp/search?q=051c1797
12月6日至14日:51:31.117:D /异常(3302):TwitterException {异常code = [ea09dc6d-051c1797 0237e8c8-9e66d70f],状态code = -1,消息= NULL,code = -1,retryAfter = -1,rateLimitStatus = NULL,版本3.0.2 =}


解决方案

 微博=新TwitterFactory()的getInstance()。
    //获得访问令牌
    authProvider.retrieveAccessToken(authConsumer,验证);    //初始化twitter4j的访问令牌
    的accessToken mAccessToken =新的accessToken(authConsumer.getToken(),authConsumer.getTokenSecret());    //可选保存以供将来使用
    ProjectUtil.setAccessTokenTwitter((MainActivity)mScreen,mAccessToken.getToken());
    ProjectUtil.setAccessSecretTwitter((MainActivity)mScreen,mAccessToken.getTokenSecret());    //设置twitter4j.Twitter的Oauth
    twitter.setOAuthConsumer(AppConstants.CONSUMER_KEY,AppConstants.CONSUMER_SECRET);
    twitter.setOAuthAccessToken(mAccessToken);
    //信息
    StatusUpdate广告=新StatusUpdate(我的messgae);    //从SD卡图像
    档案文件=新的文件(Environment.getExternalStorageDirectory()+/ myimage.png);
    的InputStream的InputStream =新的FileInputStream(文件);
    ad.setMedia(玛雅的InputStream);    twitter4j.Status响应= twitter.updateStatus(广告);    Log.d(状态,response.getText());

I am using twitter4j , i am able to login successfully into my twitter account, but when i am trying to post some thing the following exception is raised.

My Code

try
        {

        Bitmap bmpFinal = getBitmapFromURL(Imagename.trim());
        Log.d("ImagePath",Imagename);

        Configuration conf = new ConfigurationBuilder()
        .setOAuthConsumerKey(TWITTER_CONSUMER_KEY)
        .setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET)
        .setOAuthAccessToken(access_token)
        .setOAuthAccessTokenSecret(access_token_secret)
        .setMediaProviderAPIKey("320954b8bf13ffd7463a4dbe667b9dd2")
        .build();

        Uri tempUri = getImageUri(getApplicationContext(), bmpFinal);

        File finalFile = new File(getRealPathFromURI(tempUri));// THIS IS IMPORTANT. TWITPIC NEEDS THE ACTUAL / ABSOLUTE PATH OF THE IMAGE. JUST THE URI DOES NOT WORK!!!!

        ImageUpload upload = new ImageUploadFactory(conf).getInstance(MediaProvider.TWITPIC);

        String url = upload.upload(finalFile);
        Log.e("TWITTER URL RESPONSE", url);
        Log.d("TWITTER URL RESPONSE", url);
        // END OF FIRST STEP:

        // SECOND STEP IS TO UPLOAD TO TWITTER

        ConfigurationBuilder builder = new ConfigurationBuilder();

        builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
        builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);

        AccessToken accessToken = new AccessToken(access_token, access_token_secret);
        Twitter twitter = new TwitterFactory(builder.build()).getInstance(accessToken);

        String finalStatusWithURL = null;

        if (status.trim().length() > 0) {

            finalStatusWithURL = status + ":\n " + url;

        } else {
            finalStatusWithURL = url;
        }
        twitter4j.Status response = twitter.updateStatus(finalStatusWithURL);
        Log.e("TWITTER RESPONSE", response.getText());
        }
        catch(Exception e)
        {
            Log.d("Exception ",""+e);
        }
        return null;
    }

Logcat Exception

06-14 12:51:31.117: D/Exception(3302): No authentication challenges found
06-14 12:51:31.117: D/Exception(3302): Relevant discussions can be found on the Internet at:
06-14 12:51:31.117: D/Exception(3302):  http://www.google.co.jp/search?q=ea09dc6d or
06-14 12:51:31.117: D/Exception(3302):  http://www.google.co.jp/search?q=051c1797
06-14 12:51:31.117: D/Exception(3302): TwitterException{exceptionCode=[ea09dc6d-051c1797 0237e8c8-9e66d70f], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.2}

解决方案

    twitter = new TwitterFactory().getInstance();
    //Retrieve access token                     
    authProvider.retrieveAccessToken(authConsumer,verifier);

    //Initialize access token of twitter4j
    AccessToken mAccessToken = new AccessToken( authConsumer.getToken(),authConsumer.getTokenSecret());

    //optional to save it for future use                    
    ProjectUtil.setAccessTokenTwitter((MainActivity)mScreen, mAccessToken.getToken());
    ProjectUtil.setAccessSecretTwitter((MainActivity)mScreen, mAccessToken.getTokenSecret());

    //Set twitter4j.Twitter Oauth                       
    twitter.setOAuthConsumer(AppConstants.CONSUMER_KEY, AppConstants.CONSUMER_SECRET);
    twitter.setOAuthAccessToken(mAccessToken);
    //message                       
    StatusUpdate ad=new StatusUpdate("my messgae");

    //Image from sdcard    
    File file = new File(Environment.getExternalStorageDirectory()+"/myimage.png");
    InputStream inputStream = new FileInputStream(file);
    ad.setMedia("myMedia",inputStream);

    twitter4j.Status response = twitter.updateStatus(ad);



    Log.d("Status", response.getText());

这篇关于微博4J发现无验证挑战,有关讨论可以在网络异常发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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