2013-05-04 4 views
2

Я использую facebook object api для загрузки изображений в службу промежуточного уровня facebook. апи документ здесь http://developers.facebook.com/docs/opengraph/using-object-api/как передать команду curl на http post request

в doucement, он использует локон, чтобы загрузить изображение:

локон -X POST https://graph.facebook.com/me/staging_resources -F [email protected]/prawn-curry-1.jpg -F access_token = $ USER_ACCESS_TOKEN

Как я могу достичь той же функции, используя http post request в моем приложении для Android?

Большое спасибо!

ответ

0

Если вы знаете, как отправить фотографию с Android, это не должно быть иначе.

Bundle params = new Bundle(); 
params.putByteArray("file", data); 

Request request = new Request(
    Session.getActiveSession(), 
    "me/staging_resources", 
    params, 
    HttpMethod.POST 
); 
Response response = request.executeAndWait(); 
// handle the response 
+1

, так что я предполагаю, что данные здесь является массив байт читать из файла. Будет лучше, если я могу напрямую использовать путь к файлу. Я использовал MultipartEntity, и он работает. – jiawen

+0

Будет хорошо, если мы сможем использовать запрос в facebook sdk с файлом путь – jiawen

2
String uri = "https://graph.facebook.com/me/staging_resources"; 
HttpResponse response = null; 
try {   
    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(uri); 
    MultipartEntity postEntity = new MultipartEntity(); 
    String picPath = (Uri.parse(picUriStr)).getPath(); 
    File file = new File("/data/local/tmp/images.jpg"); 
    postEntity.addPart("file", new FileBody(file, "image/jpeg")); 
    postEntity.addPart("access_token", new StringBody("your access token string here")); 
    post.setEntity(postEntity); 
    response = client.execute(post); 
} 
catch (ClientProtocolException e) { 
    Log.d(TAG, "exception"); 
    e.printStackTrace(); 
} 
catch (IOException e) { 
    Log.d(TAG, "exception"); 
    e.printStackTrace(); 
} 

HttpEntity responseEntity = response.getEntity(); 
if (responseEntity== null) { 
    Log.d(TAG, "responseEntity is null"); 
    return ""; 
} 
+1

вот код, который я использовал, чтобы заставить его работать. – jiawen