twitter4j-core-2.2.5.jar中的Android Twitter身份验证代码更改
我在一个Android应用程序中工作,它可以在Twitter上发布推文和图片。我用的是twitter4j-core-2.1.11。现在我已经升级到twitter4j-core-2.2.5.jar,因为twitter4j-core-2.1.11没有在推特时添加上传图片的属性 这是我在twitter4j-core-2.1.11中用来验证的代码twitter4j-core-2.2.5.jar中的Android Twitter身份验证代码更改,android,Android,我在一个Android应用程序中工作,它可以在Twitter上发布推文和图片。我用的是twitter4j-core-2.1.11。现在我已经升级到twitter4j-core-2.2.5.jar,因为twitter4j-core-2.1.11没有在推特时添加上传图片的属性 这是我在twitter4j-core-2.1.11中用来验证的代码 public static boolean isAuthenticated(SharedPreferences prefs) { String token
public static boolean isAuthenticated(SharedPreferences prefs) {
String token = prefs.getString(OAuth.OAUTH_TOKEN, "");
String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "");
AccessToken accesstoken = new AccessToken(token, secret);
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
twitter.setOAuthAccessToken(accesstoken);
try {
twitter.getAccountSettings();
return true;
} catch (TwitterException e) {
return false;
}
}
现在我得到一个错误:
AndroidRuntime(694):由以下原因引起:java.lang.IllegalArgumentException:无效的访问令牌格式。是否这样做
Do like this way
RequestToken requestToken=twitter.getOAuthRequestToken(getResources().getString(R.string.callback));
webView.loadUrl(requestToken.getAuthenticationURL()+"&force_login=true");
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try {
if(url.startsWith(getString(R.string.callback)))
{
List<NameValuePair> list = URLEncodedUtils.parse(new URI(url), "utf-8");
String oauthVerifier="";
Iterator<NameValuePair> iter = list.iterator();
while (iter.hasNext()) {
NameValuePair param = iter.next();
if(param.getName().equals("oauth_verifier"))
{
oauthVerifier = param.getValue();
break;
}
}
accessToken = twitter.getOAuthAccessToken(requestToken,oauthVerifier);
twitter.setOAuthAccessToken(accessToken);
setResult(1);
finish();
getAccountSettings();
}
else
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public void onPageFinished(WebView view, String url) {
stopProgress();
super.onPageFinished(view, url);
}
});
private boolean getAccountSettings(){
try {
twitter.getAccountSettings();
return true;
} catch (TwitterException e) {
return false;
}
}
RequestToken RequestToken=twitter.getOAuthRequestToken(getResources().getString(R.string.callback));
loadUrl(requestToken.getAuthenticationURL()+“&force_login=true”);
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
试一试{
if(url.startsWith(getString(R.string.callback)))
{
List List=URLEncodedUtils.parse(新的URI(url),“utf-8”);
字符串oauthVerifier=“”;
迭代器iter=list.Iterator();
while(iter.hasNext()){
NameValuePair param=iter.next();
if(param.getName().equals(“oauth_验证器”))
{
oauthVerifier=param.getValue();
打破
}
}
accessToken=twitter.getOAuthAccessToken(requestToken,oauthVerifier);
setOAuthAccessToken(accessToken);
设定结果(1);
完成();
getAccountSettings();
}
其他的
返回false;
}捕获(例外e){
e、 printStackTrace();
返回false;
}
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
stopProgress();
super.onPageFinished(视图、url);
}
});
私有布尔getAccountSettings(){
试一试{
getAccountSettings();
返回true;
}捕获(twitter异常){
返回false;
}
}
你能把整个文件寄到阿伦吗。ps95@yahoo.com