{"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}

18,499

See the docs for a photos graph POST request here https://developers.facebook.com/docs/reference/api/user/#photos

Your image data should go into the "source" field, and the only other available fields are "message", "place' and "no_story". The "src", "name", "href" are not valid fields.

Share:
18,499
Akanksha Rathore
Author by

Akanksha Rathore

Updated on July 26, 2022

Comments

  • Akanksha Rathore
    Akanksha Rathore almost 2 years
    private void postToWall(String msg) {
            Bundle parameters = new Bundle();
            // parameters.putString("method", "stream.publish");
    
            JSONObject attachment = new JSONObject();
    
            try {
    
                byte[] data = null;
    
                Bitmap bi = BitmapFactory.decodeResource(getResources(),
                        R.drawable.bluerib);
                // Bitmap bi =
                // BitmapFactory.decodeFile("http://demos.com/LangGuage/medal_1.png");
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                bi.compress(Bitmap.CompressFormat.JPEG, 30, baos);
                data = baos.toByteArray();
    
                // Bundle params = new Bundle();
                // params.putByteArray("picture", data);
                attachment.put("type", "image");
                // attachment.put("picture", data);
                attachment.put("name", "LangGuage");
                attachment.put("message", msg);
                attachment.put("src", "http://demos.com/LangGuage/medal_1.png");
                attachment.put("href", "http://www.abc.com");
                // attachment.put("href",
                // "http://hwsdemos.com/LangGuage/medal_1.png");
    
                parameters.putString(Facebook.TOKEN, facebook.getAccessToken());
                parameters.putString("attachment", attachment.toString());
                String response = facebook.request("me/photos", parameters, "POST");
    
                System.out.println("----responce" + response);
    
                if (response.contains("Duplicate status message")) {
                    progressHandler.sendEmptyMessage(1);
                    resp = 1;
    
                } else if (response == null || response.equals("")
                        || response.equals("false") || response.contains("error")) {
                    Log.d("error", "error response");
                } else {
                    progressHandler.sendEmptyMessage(0);
                    resp = 0;
    
                }
    
            } catch (Exception e) {
                Log.e(TAG, "Posting fail");
    
                e.printStackTrace();
                // finish();
            }
    
        }
    

    My app is supporting single sign-in for facebook. I don't want to use dialogs. Whenever I try to post an image and message together in a attachment I catch:

    {"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}
    
  • arthur.sw
    arthur.sw almost 10 years
    Is it still true? I read that you can post an image via an url, in which case you you "src" instead of "source": developers.facebook.com/docs/graph-api/reference/v2.0/user/…
  • Ming Li
    Ming Li almost 10 years
    You can post an image using either "source" or "url".