android - 如何在facebook上发布图片而不是邮件?

  显示原文与译文双语对照的内容
0 0

我使用这个代码将图片发布到 facebook 。 但这里代码没有响应。 请 帮助 我 。


//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 这里代码用于 postToWall(): 在这个方法中,我给出了一个图像的路径,//and 这个方法在 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 这里代码用于 fbRequestListener() 类:

public 类fbRequestListener实现 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();

 }

 }

时间: 原作者:

0 0

你必须使用GRAPH或者 HACKBOOK 示例

这很简单。

下载代码

检查下面的代码。

在该示例中替换以下代码。


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();
 }
 }

原作者:
0 0

请尝试以下代码:


 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();
}

原作者:
...