gpt4 book ai didi

android - 由于更新限制错误,无法将图像发布到 Twitter

转载 作者:行者123 更新时间:2023-11-30 02:32:02 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将图片上传到 Twitter,但出现限制错误:

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TwitterConst.CONSUMER_KEY);
builder.setOAuthConsumerSecret(TwitterConst.CONSUMER_SECRET);

String access_token = mSharedPreferences.getString(TwitterConst.PREF_KEY_TOKEN, "");
String access_token_secret = mSharedPreferences.getString(TwitterConst.PREF_KEY_SECRET, "");

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

StatusUpdate status = new StatusUpdate("Sample message: " + args[0] + " - Download it from Google Play at goo.gl/xxxxxx");
if (foto_to_share.equals("https://www.mywebsite.com/Folder/default/fb_stub.png")) {
status.setMedia(String_to_File("https://www.mywebsite.com/Folder/default/fb_stub.png"));
} else {
status.setMedia(String_to_File("http://www.mywebsite.com/Folder/upload/" + session_userid + "/" + foto_to_share));
}
twitter4j.Status response = twitter.updateStatus(status);

第一个图像是 139 KB,第二个是 140 KB。两个图像都在网络上,String_to_File 方法将它们下载到 SD 卡。

我确定我没有达到我所知道的任何限制,因为我无法发布图片,但我可以发推文。但是,我认为此 String_to_File 方法存在一些问题,因为它将第一个( stub )图像保存到 SD 卡,但是当它保存第二个图像时,它已损坏或出现其他问题,因为我无法打开它。

public File String_to_File(String img_url) {

try {
File rootSdDirectory = Environment.getExternalStorageDirectory();

casted_image = new File(rootSdDirectory, "attachment.jpg");
if (casted_image.exists()) {
casted_image.delete();
}
casted_image.createNewFile();

FileOutputStream fos = new FileOutputStream(casted_image);

URL url = new URL(img_url);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();
InputStream in = connection.getInputStream();

byte[] buffer = new byte[1024];
int size = 0;
while ((size = in.read(buffer)) > 0) {
fos.write(buffer, 0, size);
}
fos.close();
return casted_image;

} catch (Exception e) {

System.out.print(e);
// e.printStackTrace();

}
return casted_image;
}

错误:

11-29 18:14:23.090: W/System.err(14264): 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
11-29 18:14:23.090: W/System.err(14264): message - Error creating status.
11-29 18:14:23.090: W/System.err(14264): code - 189
11-29 18:14:23.090: W/System.err(14264): Relevant discussions can be found on the Internet at:
11-29 18:14:23.090: W/System.err(14264): http://www.google.co.jp/search?q=2fc5b7cb or
11-29 18:14:23.090: W/System.err(14264): http://www.google.co.jp/search?q=0e8e77fd
11-29 18:14:23.090: W/System.err(14264): TwitterException{exceptionCode=[2fc5b7cb-0e8e77fd], statusCode=403, message=Error creating status., code=189, retryAfter=-1, rateLimitStatus=null, version=4.0.2}
11-29 18:14:23.090: W/System.err(14264): at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:163)
11-29 18:14:23.090: W/System.err(14264): at twitter4j.HttpClientBase.request(HttpClientBase.java:53)
11-29 18:14:23.090: W/System.err(14264): at twitter4j.HttpClientBase.post(HttpClientBase.java:82)
11-29 18:14:23.090: W/System.err(14264): at twitter4j.TwitterImpl.post(TwitterImpl.java:1592)
11-29 18:14:23.090: W/System.err(14264): at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:213)
11-29 18:14:23.090: W/System.err(14264): at com.example.blgui3.BucketProfileActivity$updateTwitterStatusImage.doInBackground(BucketProfileActivity.java:3619)
11-29 18:14:23.090: W/System.err(14264): at com.example.blgui3.BucketProfileActivity$updateTwitterStatusImage.doInBackground(BucketProfileActivity.java:1)
11-29 18:14:23.090: W/System.err(14264): at android.os.AsyncTask$2.call(AsyncTask.java:288)
11-29 18:14:23.090: W/System.err(14264): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-29 18:14:23.090: W/System.err(14264): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
11-29 18:14:23.090: W/System.err(14264): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-29 18:14:23.100: W/System.err(14264): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-29 18:14:23.100: W/System.err(14264): at java.lang.Thread.run(Thread.java:864)

有什么想法吗?

最佳答案

我发现了问题,它与 Twitter 无关,所以应该删除这个主题。

问题是上传到我的服务器的图片名称中的特殊字符被删除了,所以不匹配。这就是 String_to_File() 无法下载图像的原因,因为它正在寻找 my_image.png,但它找到的只是 myimage.png。

关于android - 由于更新限制错误,无法将图像发布到 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27204914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com