2010-11-04 19 views
9

मैं फेसबुक एंड्रॉइड एसडीके का उपयोग करने और फेसबुक पर एक लिंक पोस्ट करने में सक्षम होना चाहता हूं। मैं जो चाहता हूं उसका एक उदाहरण यह होगा कि यदि आप फेसबुक पर थे और आप अपने स्टेटस भाग में एक लिंक टाइप करते हैं, जैसे "http://www.google.com"। जब आप ऐसा करते हैं तो एक बॉक्स पॉप अप हो जाता है और आपकी पोस्ट एक ब्लॉक होने पर समाप्त होती है जिसमें एक छवि और एक लिंक होता है। मुझे एक एपैचमेंट का उपयोग करके फेसबुक एपीआई में प्रलेखन मिला, हालांकि जब मैं एंड्रॉइड फेसबुक एपीआई के साथ ऐसा करने की कोशिश करता हूं तो यह काम नहीं कर रहा है। मैंने बिना भाग्य के नेट पर घंटों की तलाश की है। धन्यवाद।छवि के साथ दीवार पर एंड्रॉइड फेसबुक एपीआई पोस्ट

+0

क्या आप अपना वर्तमान कोड पोस्ट कर सकते हैं? – Zarah

+0

इसे समझ लिया। –

+0

शायद आप अपना समाधान साझा कर सकते हैं? –

उत्तर

16

asuming जब आप इस कि आप जानते हैं कि एपीआई के माध्यम से फेसबुक और इस तरह के पर लॉग इन करने के लिए कैसे पढ़ें ...

private void fbImageSubmit(Facebook fb, String imageurl, String caption, String description, String name, String linkurl) 
    { 
     if(fb != null) 
     { 
      if(fb.isSessionValid()) 
      { 
       Bundle b = new Bundle(); 
       b.putString("picture", imageurl); 
       b.putString("caption",caption); 
       b.putString("description",description); 
       b.putString("name",name); 
       b.putString("link",linkurl); 
       try { 
        String strRet = ""; 
        strRet = fb.request("/me/feed",b,"POST"); 
        JSONObject json; 
        try { 
         json = Util.parseJson(strRet); 
         if(!json.isNull("id")) 
         { 
          Log.i("Facebook", "Image link submitted."); 
         } 
         else 
         { 
          Log.e("Facebook","Error: " + strRet); 
         } 
        } catch (FacebookError e) { 
         Log.e("Facebook","Error: " + e.getMessage()); 
        } 
       } catch (Exception e) { 
        Log.e("Facebook", "Error: " + e.getMessage()); 
       } 
      } 
     } 
    } 
+1

+1 थानक्स ने मुझे बंडल में पारित होने वाले कुछ पैरामीटर नाम जानने में मदद की। –

+1

यह विधि पूरी तरह से काम करती है .. @ केल्टन –

+0

imageUrl और LinkUrl द्वारा अच्छा काम? वे क्या हैं? –

3

यह प्रगति संवाद बॉक्स के साथ पूर्ण ठीक काम करता है .. मैं इसे इस्तेमाल किया है ...

आप फेसबुक के जार जोड़ा जाना चाहिए ... बटन क्लिक करें पर समारोह नीचे

Facebook authenticatedFacebook = new Facebook(APP_ID); 

    private static final String[] PERMISSIONS = new String[] { "publish_stream", "read_stream", "offline_access" }; 

कॉल ....

authenticatedFacebook.authorize(YOUR_CLASS_NAME.this, PERMISSIONS, new FaceBookWallPostListener()); 

अब इस वर्ग को शामिल करें ...

public class FaceBookWallPostListener implements DialogListener { 

    public void onComplete(Bundle values) { 
     new FacebookWallPost().execute(); 
    } 

    public void onCancel() { 
    } 

    public void onError(DialogError e) { 
     e.printStackTrace(); 
    } 

    public void onFacebookError(FacebookError e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
protected boolean isRouteDisplayed() { 
    return false; 
} 





private class FacebookWallPost extends AsyncTask<String, Void, String> { 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      path = "Path OF YOUR IMAGE"; 
      Bundle parameters = new Bundle(); 
      parameters.putString("message", "MESSAGE YOU WANT TO POST"); 
      try { 
       File file = new File(path, "IMAGE_NAME.jpg"); 
       Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); 
       byte[] data = null; 
       ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
       bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); 
       data = baos.toByteArray(); 
       if (data != null) { 
        parameters.putByteArray("picture", data); 
       } 
       parameters.putString("access_token", authenticatedFacebook.getAccessToken()); 
       authenticatedFacebook.request("me"); 
       authenticatedFacebook.request("me/photos", parameters, "POST"); 
      } catch (Exception e) { 
       return e.getMessage(); 
      } 

      return "success"; 
     } catch (Exception e) { 
      return e.getMessage(); 
     } 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     pDialog.dismiss(); 
     if (result.equals("success")) { 
      Toast.makeText(YOUR_CLASS_NAME.this, "WallPost Successfully Done", Toast.LENGTH_SHORT).show(); 
      try { 
       new File(Environment.getExternalStorageDirectory().toString() + "/Diegodeals", "diegodeals.jpg").delete(); 
      } catch (Exception e) { 
      } 

     } else { 
      Toast.makeText(YOUR_CLASS_NAME.this, "Failed to post \n " + result, Toast.LENGTH_SHORT).show(); 
     } 

    } 

    @Override 
    protected void onPreExecute() { 
     pDialog = new ProgressDialog(YOUR_CLASS_NAME.this); 
     pDialog.setMessage("Posting Picture & Message on Facebook..."); 
     pDialog.show(); 
    } 

} 

///// goood शुभकामनाएँ।

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