私はTwitter4J(2.1.0)を使ってつぶやきを更新しようとしています。私は自分のコードに何が間違っているのか分かりません。特に私の問題でTwitter 4Jを使ってつぶやきを更新するには?
は以下のとおりです。
(a)すべてのツイートが正常に投稿されていません。私はしばしばエラーコード-1を得る。 Googleのグループpost ...
によると、あなたはコードを取得-1内部HTTPコンポーネントは に接続したり、APIからの読み取りに失敗したとき。 DNS関連の問題のために、APIが にJVMから到達できない場合は、コード-1を取得することもできます。
奇妙なことに、私はこれをかなり毎回2番目の投稿にしているようでした。これを処理するには、-1エラーコードを受け取ったときはいつでも、私は再び更新を試みます。私はこれが非常に良い解決策ではないことを認識している間。これは、新しいつぶやきが古いつぶやきに一致したときに、時間の95%
(b)は、私が
エラーコード403を複製エラー(エラーコード403)を取得probemがあっても、重複を発生する固定しました今古くなっ...私の現在のコード(例。「こんにちは」再びエラーコード403とTwitterExceptionをスロー投稿し、その後、ステータスの更新、さまざまなポスト、「こんにちは」掲載)
私のコードは、アクティビティではなくサービス内にあるAsyncTaskにあります。私はTwitterのAPIを使用すると、すでに作ったつぶやきに一致するすべてのつぶやきを拒否します....
class SendTwitAsyncTask extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
String tokenTwit = params[0];
String tokenSecretTwit = params[1];
String strMessageBody = params[2];
AccessToken aToken = new AccessToken(tokenTwit, tokenSecretTwit);
// initialize Twitter4J
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
twitter.setOAuthAccessToken(aToken);
// create a tweet
// strMessageBody varies
String tweet = strMessageBody;
boolean bool = twitter.isOAuthEnabled();
if (twitter.isOAuthEnabled()) {
GeoLocation geolocation = new GeoLocation(-33.91, 151.25);
try {
twitter.updateStatus(tweet, geolocation);
showNotification("Twitter One" , TWIT_SUCCESS);
} catch (TwitterException te) {
if (te.getStatusCode() == -1) {
//try again
try {
twitter.updateStatus(tweet, geolocation);
showNotification("Twitter Two ", TWIT_SUCCESS);
}
catch (TwitterException tetwo) {
describeTwitException(tetwo.getStatusCode());
}
} //end if
//else exception other than -1
else {
describeTwitException(te.getStatusCode());
} //end else
}// end outer catch
} //end if
else {
showNotification("Unable to authenticate" , TWIT_FAIL);
}//
return null;
}
} //end class SendTwitAsyncTask
public void describeTwitException(int twitExceptionCode) {
switch (twitExceptionCode) {
case (-1):
showNotification("Twitter (unable to connect)", TWIT_FAIL);
break;
case(403):
showNotification("Twitter (duplicate tweet)", TWIT_FAIL);
break;
default:
showNotification("Twitter", TWIT_FAIL);
} //end switch
} //end describeTwitException method
ありがとうございます。 Twitterのアンドロイドアプリから重複ツイートを送ろうとしました。最近私のタイムラインにあったツイートが重複して送信されることはありません。しかし、オリジナルのつぶやきが非常に古い(たとえば、1年を超える)たびに、重複したつぶやきがうまく投稿されます。 PS。あなたの回答を投票しましたが、質問が残っていますが、なぜ私は-1のエラーコードステータスを取得しているのかは分かりません。 – Mel