-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() クラスに使用:

public class 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

これまたはHACKBOOKの例にはGRAPH APIを使用する必要があります

これは簡単な方法です...

ここからコードをダウンロード

以下のコードを確認してください..

その例の以下のコードを置き換えます。

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 に答える
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 に答える