本文介绍了微博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发现无验证挑战,有关讨论可以在网络异常发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!