0

画像を壁にアップロードするアプリを開発しようとしています。私はそれをしましたが、バンドルに含まれている名前、キャプションなどを追加できません。newUploadPhotoRequest() メソッドは 3 つのパラメーター (sessoin、bitmap、callback) しかとらないためです。正確な完全なコードを教えてください。ありがとう

私のコード怒鳴る:このメソッドは、画像を投稿するためのものです:

public void image_load(){

Session session = Session.getActiveSession();

        if (session.isOpened())
        {       Toast.makeText(MainActivity.this, "IN image load IF", Toast.LENGTH_SHORT).show();
            Bundle postParams = new Bundle();

            postParams.putString("name", "Name here.");
            postParams.putString("caption", "Caption here.");
            postParams.putString("description", "Description here.");
            postParams.putString("link", "https://developers.facebook.com/android");

            byte[] data = null;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            Bitmap bi = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
            //Bitmap bi = BitmapFactory.decodeFile("/sdcard/viewitems.png");
            bi.compress(Bitmap.CompressFormat.PNG, 100, baos);
            data = baos.toByteArray();

            //postParams.putString("method", "photos.upload");
            postParams.putByteArray("picture", data);

            Request.Callback callback = new Request.Callback() 
            {
                public void onCompleted(Response response) 
                {
                    FacebookRequestError error = response.getError();

                    if (error != null) 
                        Toast.makeText(MainActivity.this , error.getErrorMessage(), Toast.LENGTH_SHORT).show();

                    else 
                        Toast.makeText(MainActivity.this, "Posted successful on your wall", Toast.LENGTH_SHORT).show();
                }
            };

            //Request request = new Request(session, "feed", postParams, HttpMethod.POST, callback);
            //RequestAsyncTask task = new RequestAsyncTask(request);
            //task.execute();
            Request request = Request.newUploadPhotoRequest(session, bi, callback);
            request.executeAsync();
        }
        else{
            Toast.makeText(MainActivity.this, "login first", Toast.LENGTH_SHORT).show();
        }
4

1 に答える 1