我试图将我的Android应用程序中的图像分享到instagram应用程序.........我无法上传图像.........
@SuppressWarnings("unchecked")
public Map<String, String> doUpload() {
Log.i(TAG, "Upload");
Long timeInMilliseconds = System.currentTimeMillis()/1000;
String timeInSeconds = timeInMilliseconds.toString();
MultipartEntity multipartEntity = new
MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
Map returnMap = new HashMap<String, String>();
// check for cookies
/* if( httpClient.getCookieStore() == null ) {
returnMap.put("result", "Not logged in");
return returnMap;
}*/
try {
// create multipart data
System.out.println("image path name : "+processedImageUri.getPath());
System.out.println("image file path : "+ImgFilePath);
File imageFile = new File(ImgFilePath);//processedImageUri.getPath());
FileBody partFile = new FileBody(imageFile);
StringBody partTime = new StringBody(timeInSeconds);
multipartEntity.addPart("photo", partFile );
multipartEntity.addPart("device_timestamp", partTime);
} catch ( Exception e ) {
Log.e(TAG,"Error creating mulitpart form: " + e.toString());
returnMap.put("result", "Error creating mulitpart form: " + e.toString());
return returnMap;
}
// upload
try {
System.out.println("111111111111111111");
System.out.println("multipart entity value : "+multipartEntity.toString());
HttpPost httpPost = new HttpPost(Utils.UPLOAD_URL);
httpPost.setEntity(multipartEntity);
System.out.println("http post vlaue : "+httpPost.toString());
System.out.println("http client value : "+httpClient.toString());
HttpResponse httpResponse = httpClient.execute(httpPost);
System.out.println("Http response value : "+httpResponse.toString());
HttpEntity httpEntity = httpResponse.getEntity();
Log.i(TAG, "Upload status: " + httpResponse.getStatusLine());
System.out.println("staus entity value : "+httpResponse.getStatusLine().toString());
System.out.println("http status : "+HttpStatus.SC_OK);
// test result code
if( httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK ) {
Log.e(TAG, "Login HTTP status fail: " + httpResponse.getStatusLine().getStatusCode());
returnMap.put("result", "HTTP status error: " + httpResponse.getStatusLine().getStatusCode() );
return returnMap;
}
// test json response
// should look like
/*
{"status": "ok"}
*/
if( httpEntity != null ) {
BufferedReader reader = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));
String json = reader.readLine();
System.out.println("Entity value : "+json);
JSONTokener jsonTokener = new JSONTokener(json);
JSONObject jsonObject = new JSONObject(jsonTokener);
Log.i(TAG,"JSON: " + jsonObject.toString());
String loginStatus = jsonObject.getString("status");
if( !loginStatus.equals("ok") ) {
Log.e(TAG, "JSON status not ok: " + jsonObject.getString("status"));
returnMap.put("result", "JSON status not ok: " + jsonObject.getString("status") );
return returnMap;
}
}
} catch( Exception e ) {
Log.e(TAG, "HttpPost exception: " + e.toString());
returnMap.put("result", "HttpPost exception: " + e.toString());
return returnMap;
}
// configure / comment
try {
HttpPost httpPost = new HttpPost(Utils.CONFIGURE_URL);
String partComment = txtCaption.getText().toString();
List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("device_timestamp", timeInSeconds));
postParams.add(new BasicNameValuePair("caption", partComment));
httpPost.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8));
System.out.println("http client value : "+httpClient.toString());
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
// test result code
if( httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK ) {
Log.e(TAG, "Upload comment fail: " + httpResponse.getStatusLine().getStatusCode());
returnMap.put("result", "Upload comment fail: " + httpResponse.getStatusLine().getStatusCode() );
return returnMap;
}
returnMap.put("result", "ok");
return returnMap;
} catch( Exception e ) {
Log.e(TAG, "HttpPost comment error: " + e.toString());
returnMap.put("result", "HttpPost comment error: " + e.toString());
return returnMap;
}
以上是我用于上传图片的代码,其中的URL是UPLOAD_URL =“http://instagr.am/api/v1/media/upload/”......... .... 请任何人帮我上传图像到Instagram .......提前致谢
答案 0 :(得分:4)
Instagram API尚不支持上传。
来自Instagram API文档:
目前,无法通过API上传。我们有意识地选择不添加此内容,原因如下:
Instagram是关于你在旅途中的生活 - 我们希望鼓励照片 在应用程序内。但是,将来我们可能会给白名单 根据具体情况访问各个应用程序。我们想要战斗 垃圾邮件低质量的照片。一旦我们允许从其他来源上传, 控制Instagram生态系统的内容更加困难。所有 话虽这么说,我们正在努力确保用户拥有一个 在我们的平台上提供始终如一的高品质体验。