2012-01-21 23 views
5

के साथ यूआरएल के बजाय कच्चे छवि डेटा पोस्ट करना मैं जानना चाहता हूं कि यह संभव है और यदि ऐसा है तो मैं वेब पर किसी छवि को यूआरएल निर्दिष्ट करने के बजाय कच्चे छवि डेटा को प्रेषित करने के बजाय कैसे कर सकता हूं फेसबुक दीवार?एंड्रॉइड फेसबुक एसडीके

काम कर कोड मैं इस समय इस में परिणाम हो:

http://1.bp.blogspot.com/-klSLFEmvHy0/TxpPMIay0xI/AAAAAAAAAKQ/iLZv-QtmThc/s1600/fbpost.JPG (खेद मैं चित्रों एम्बेड करने के लिए तो URL खोलने के कृपया :-) पर्याप्त क्रेडिट नहीं है

कौन सा moreorless है जो मैं चाहता कैप्शन, शीर्षक, लिंक इत्यादि के साथ, लेकिन मेरा अंतिम उद्देश्य उपरोक्त प्रदर्शित दिल के आकार की छवि को आउटपुट करने वाला है, जब मेरा ऐप हर बार उत्पन्न होता है जब कोई उपयोगकर्ता फेसबुक पर अपने परिणाम पोस्ट करने का निर्णय लेता है (सामग्री गतिशील रूप से उत्पन्न होती है छवि)। मैं कुछ तीसरे पक्ष के सर्वर को अपलोड करने और फिर उस यूआरएल को साझा करने के लिए लागू नहीं करना चाहता हूं।

मैं लोगों को इस तरह कोड की चर्चा करते हुए चारों ओर देखा है:

... 
    byte[] data = null; 
    Bitmap bi = BitmapFactory.decodeFile(imagePath); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    data = baos.toByteArray(); 
    params.putByteArray(... 

लेकिन यह तस्वीरें एक एल्बम जो नहीं है कि मैं क्या या तो चाहते हैं के लिए सीधे अपलोड करने के लिए हो रहा है।

मेरे काम कर कोड अब तक है:

private void loginAndPostToFacebook() { 
    mFacebook = new Facebook(FACEBOOK_APP_ID); 

    mFacebook.authorize(this, new String[] { "publish_stream" }, new DialogListener() { 
     @Override 
     public void onComplete(Bundle values) { 
      postOnWall(); 
     } 

     @Override 
     public void onFacebookError(FacebookError error) { 
      L.t(getString(R.string.error_facebook_error) + ": " + error.getMessage()); 
     } 

     @Override 
     public void onError(DialogError e) { 
      L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage()); 
     } 

     @Override 
     public void onCancel() { 
     } 
    }); 
} 

public void postOnWall() { 
    Bundle params = new Bundle(); 

    // Message 
    params.putString("message", "my msg"); 

    // Name 
    params.putString("name", "app name"); 

    // Caption 
    params.putString("caption", "caption"); 

    // Description 
    params.putString("description", "description"); 

    // Here's where I'd insert my dynamically generated image data...  
    params.putString("picture", "http://4.bp.blogspot.com/-VaNzm3xMOtk/TxpKzhxpdEI/AAAAAAAAAKI/08Kc5b4HW0Q/s1600/sexometer128x128neutral_icon.png");   

    // Link 
    params.putString("link", "http://www.stackoverflow.com"); 

    try { 
     String response = mFacebook.request("me"); 
     response = mFacebook.request("me/feed", params, "POST"); 
     if (response == null || response.equals("") || response.equals("false")) { 
      L.t(getString(R.string.error_facebook_error) + ": blank response"); 
      return; 
     } else if (response.toLowerCase().contains("error")) { 
      L.t(getString(R.string.error_facebook_error) + ": " + response); 
      return; 
     } 
    } catch(Exception e) { 
     L.t(getString(R.string.error_facebook_error) + ": " + e.getMessage()); 
     return; 
    } 

    L.t(getString(R.string.success_posted_to_facebook)); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (mFacebook != null) { 
     mFacebook.authorizeCallback(requestCode, resultCode, data); 
    } 
} 

उत्तर

0

मेरी समझ से, आप पहली बार किसी एप्लिकेशन की एल्बम में फोटो अपलोड करने की आवश्यकता होगी। यदि "no_story" पैरामीटर गलत है तो यह स्वचालित रूप से इसे दीवार पर पोस्ट कर देगा।

https://developers.facebook.com/docs/reference/api/user/#photos

संबंधित मुद्दे