Scribe-JavaとTwitterのPOSTUrl"https://upload.twitter.com/1/statuses/update_with_media.json"を使用して画像をアップロードすることはできますか?
ソース
私は応答を受け取ります:{"request": "\ / 1 \ / statuss \ / update_with_media.json"、 "error":"OAuthで認証できませんでした。"}
質問する
1410 次
1 に答える
3
これを見ている他の人を助けるために、マルチパートを構築する簡単な方法は、httpmime-4.0.1.jarとapache-mime4j-0.6.jarをパスに追加して次のようにすることです。
/* You will have done this bit earlier to authorize the user
OAuthService service = new ServiceBuilder().provider(TwitterApi.SSL.class).apiKey("[YOUR API KEY]").apiSecret("[YOUR SECRET]").callback("twitter://callback").build();
Token accessToken = Do you oauth authorization as normal
*/
OAuthRequest request = new OAuthRequest(Verb.POST, "https://upload.twitter.com/1/statuses/update_with_media.json");
MultipartEntity entity = new MultipartEntity();
try {
entity.addPart("status", new StringBody("insert vacuous statement here"));
entity.addPart("media", new FileBody(new File("/path/of/your/image/file")));
ByteArrayOutputStream out = new ByteArrayOutputStream();
entity.writeTo(out);
request.addPayload(out.toByteArray());
request.addHeader(entity.getContentType().getName(), entity.getContentType().getValue());
service.signRequest(accessToken, request);
Response response = request.send();
if (response.isSuccessful()) {
// you're all good
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ここでのトレードオフは、もちろん、APKに2つのjarのサイズを追加することです。
于 2012-07-02T15:45:28.287 に答える