Facebook在一次请求中上传两张相同的标签图片到Graph Api



我正在使用Graph API将标记的图像上传到facebook。这是我的代码:

MultipartEntity entity = new MultipartEntity(
                    HttpMultipartMode.BROWSER_COMPATIBLE);
            HttpClient httpClient = new DefaultHttpClient();
            mPostTagUrl = "https://graph.facebook.com/"
                    + dataManager.getOwnerId() + "/photos";
            HttpPost httppost = new HttpPost(mPostTagUrl);
            byte[] data = null;
            try {
                try {
                    String mPath = Environment.getExternalStorageDirectory()
                            .toString() + "/" + "screenshot.jpg";
                    FileInputStream fis = new FileInputStream(mPath);
                    Bitmap bi = BitmapFactory.decodeStream(fis);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                    data = baos.toByteArray();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                    Log.d("onCreate", "debug error  e = " + e.toString());
                }
                if (data != null) {
                    ByteArrayBody bab = new ByteArrayBody(data, "event_pic"
                            + ".jpg");
                    entity.addPart("source", bab);
                }
                StringBody mAccesssToken = new StringBody(dataManager
                        .getAccessToken().trim());
                entity.addPart("access_token", mAccesssToken);
JSONArray mJsonArray = new JSONArray();
JSONObject json;
                for (int i = 0; i < getAllAddFriends().size(); i++) {
                    final int index = i;
                    String fId = getAllAddFriends().get(index)
                            .getFacebookFriendId();
                    Log.d("gaurav", "facebook id ==" + fId);
                    try {
                         json = new JSONObject();
                        json.put("x", "" + position);
                        json.put("y", "" + position);
                        json.put("tag_uid", fId);
                        position = position + 10;
                        mJsonArray.put(i, json);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                String str = new String(mJsonArray.toString());
                Log.d("gaurav", "Add event Url=" + str);
                StringBody mEventNameBody = new StringBody(str);
                entity.addPart("tags", mEventNameBody);
                httppost.setEntity(entity);
                try {
                    httpClient.execute(httppost);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                HttpResponse response = httpClient.execute(httppost);
                String ret = EntityUtils.toString(response.getEntity());
                Log.d("gaurav", "Response Tag Friends =" + ret);
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }

请检查我的代码。我可以贴标签的图片,但在脸书相同的图片上传两次在同一时间。请就那个问题向我提出建议。

因为您要执行两次

httpClient.execute(httppost);

这就是为什么。

最新更新