-1

我使用此代码将图像发布到 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();                    
        }

//将此代码用于postToWall():在此方法中,我给出了要发布的图像的路径 //并且此方法正在调用onCreate()。

私人无效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);
              }    

//将此代码用于 fbRequestListener() 类:

公共类 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();

          }

   }
4

2 回答 2

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();
}
于 2012-07-09T09:55:35.023 回答
0

您必须为此使用 GRAPH API 或 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();
        }
    }
于 2012-07-09T08:33:58.893 回答