将光标移到/点击文章中的句子上,可以查看译文。      显示繁体中文内容    显示简体中文内容

How to post a image instead of message to facebook?
如何在facebook上发布图片而不是邮件?

I used this code to post image to facebook.but there is no response from this code.please help me.


//I had created onCreate() method as : 

 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);


 facebook = new Facebook(APP_ID);
 restoreCredentials(facebook);

//requestWindowFeature(Window.FEATURE_NO_TITLE);

 setContentView(R.layout.main);


 postToWall(); 
 }

//used this code for postToWall() :in this method i gave path of a image to post//and this method is calling in onCreate().

private void postToWall() {


 FileInputStream fis = null;
 try {
 fis = new FileInputStream("/mnt/sdcard/Blue_Dock_by_dimage.jpg");
 } catch (FileNotFoundException e) {
//TODO Auto-generated catch block
 e.printStackTrace();
 }
 BitmapFactory.Options options = new BitmapFactory.Options(); 
 options.inSampleSize = 2; 
 Bitmap bm = BitmapFactory.decodeStream(fis);

 AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
 ByteArrayOutputStream stream = new ByteArrayOutputStream();

 bm.compress(Bitmap.CompressFormat.PNG, 100, stream);//where bm is bitmap from Sdcard
 byte[] byteArray = stream.toByteArray();
 Bundle param = new Bundle();
 param = new Bundle();
 param.putString("message","All");
 param.putString("filename","TEst");
 param.putByteArray("image", byteArray);
 mAsyncRunner.request("me/photos", param,"POST", new fbRequestListener(), null);
 } 

//used this code for fbRequestListener() class :

public class fbRequestListener implements RequestListener {


 public void onComplete(String response, Object state) {
//TODO Auto-generated method stub
 Log.d("RESPONSE",""+response);
 } 
 public void onIOException(IOException e, Object state) {
//TODO Auto-generated method stub
 Log.d("RESPONSE",""+e);
 showToast("Authentication with Facebook failed!");
 finish();
 } 
 public void onFileNotFoundException(FileNotFoundException e,
 Object state) {
//TODO Auto-generated method stub
 Log.d("RESPONSE",""+e);
 showToast("Authentication with onFileNotFoundException failed!");
 finish();
 } 
 public void onMalformedURLException(MalformedURLException e,
 Object state) {
//TODO Auto-generated method stub
 showToast("Authentication with onMalformedURLException!");
 finish();
 } 
 public void onFacebookError(FacebookError e, Object state) {
//TODO Auto-generated method stub
 Log.d("RESPONSE",""+e);
 showToast("Authentication with onFacebookError failed!");
 finish();

 }

 }

时间: 作者:

you have to use GRAPH API for this or HACKBOOK example

this is easy way...

download code from here

check below code..

replace below code in that example.


public static void postToWall1(String message, Context con, String url,
 String Product) {
 facebook1 = new Facebook(APP_ID);

 Bundle parameters = new Bundle();

 parameters.putString("caption", Product);
 parameters.putString("description","Share photo!");
 parameters.putString("picture","" + url);
 parameters.putString("message","" + message);

 try {
 facebook1.request("me");
 String response = facebook1.request("me/feed", parameters,"POST"); 
 if (response!= null
 ||!response.equals("")
 ||!response.equals("false")
 ) 
 showToast("Message posted to your facebook wall!", con);
 }
 } catch (Exception e) {
 showToast("Failed to post to wall!", con);
 e.printStackTrace();
 }
 }

原作者:

Try this code :


 try {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpPost httpPost = new HttpPost(
"https://graph.facebook.com/me/photos?access_token="+ acess_token);
URL url = new URL("image_url");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bi = BitmapFactory.decodeStream(input);
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bi.compress(CompressFormat.PNG,100, bos);
byte[] data = bos.toByteArray();
entity.addPart("source",new ByteArrayBody(data,"testimage.png"));
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost,localContext);
Log.v("response", response+"");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

原作者:
...