2011-12-21 30 views
0

私のアプリケーションで私はこのコードを使ってFacebookに写真を投稿しています。Android:Facebookに画像投稿付きメッセージを投稿するには?

コード:

// For Facebook =================================== 
      Button facebookButton = (Button) saveButtonDialog.findViewById(R.id.facebook); 
      facebookButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        saveButtonDialog.dismiss(); 

        saveImageFunction(); // to save the Image 

        facebook.authorize(TWSBIDrawMainActivity.this, new String[]{ "user_photos,publish_checkins,publish_actions,publish_stream"},new DialogListener() {      
         @Override      
         public void onComplete(Bundle values) { 
          postImageonWall(); 
          Toast.makeText(getApplicationContext(), "Image Posted on Facebook.", Toast.LENGTH_SHORT).show(); 

         }      
         @Override      
         public void onFacebookError(FacebookError error) {      
         }      
         @Override      
         public void onError(DialogError e) {      
         }      
         @Override      
         public void onCancel() {      
         }     
        }); 
       } 
      }); 



public void postImageonWall() {    
    byte[] data = null;    

    Bitmap bi = BitmapFactory.decodeFile(APP_FILE_PATH + "/"+filename+".jpg"); 
    //Bitmap bi = BitmapFactory.decodeResource(getResources(), R.drawable.icon);    
    ByteArrayOutputStream baos = new ByteArrayOutputStream();    
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);    
    data = baos.toByteArray();     
    Bundle params = new Bundle();    
    params.putString(Facebook.TOKEN, facebook.getAccessToken());    
    params.putString("method", "photos.upload");    
    params.putByteArray("picture", data);    
    AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);    
    mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null);  

今、私はこのコードで写真を投稿することができています。 しかし今、私はこの写真の投稿とメッセージを投稿したいと思います。だから私は何をしなければならないのですか?

これについてお手伝いしてください。おかげさまで

+0

画像でメッセージを送信したいですか? と自分の壁にyaの友人の壁。 –

+0

この問題を確認してください。私はあなたがこの問題を解決できることを願っています:http://stackoverflow.com/questions/18657388/how-to-allow-user-to-post-an-image-on-wall-using-sdcard-フォルダ – Sun

答えて

5

Bunldeオブジェクトparamsに追加のパラメータを追加するだけです。ここで私は何ワット、

Bundle params = new Bundle();    
params.putString(Facebook.TOKEN, facebook.getAccessToken());    
params.putString("method", "photos.upload");    
params.putByteArray("picture", data);  

params.putString( "キャプション"、facebook_comment)です。

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);    
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null); 

私はあなたがこの行が欠落していると思います。

+0

お返事ありがとうございます。それを確認させて。 –

+0

ありがとうございます。 –

+0

いつも歓迎.. –

3
private String postwall(String uid) 
    { 
     String response = ""; 
     try 
     { 

      String DIRECTORY_PATH = "/sdcard/159.jpg"; 
      Bundle params = new Bundle(); 
      Bitmap bitmap = BitmapFactory.decodeFile(DIRECTORY_PATH); 
      byte[] data = null; 
      ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
      data = baos.toByteArray(); 
      params.putString("app_id", uid); 
      params.putString("message", "picture caption"); 
      params.putByteArray("picture", data); 

      mFacebook.authorize(this, PERMISSIONS, new LoginDialogListener()); 
      mAsyncRunner.request("me/photos", params, "POST", new WallPostRequestListener()); 
      mAsyncRunner.request(response, new WallPostRequestListener()); 
      Log.e("post result", response); 

     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return response; 
    } 

    public class WallPostRequestListener extends BaseRequestListener 
    { 

     public void onComplete(final String response) 
     { 
      Log.d("Facebook-Example", "Got response: " + response); 
      String message = "<empty>"; 
      try 
      { 
       JSONObject json = Util.parseJson(response); 
       message = json.getString("message"); 
      } 
      catch (JSONException e) 
      { 
       Log.w("Facebook-Example", "JSON Error in response"); 
      } 
      catch (FacebookError e) 
      { 
       Log.w("Facebook-Example", "Facebook Error: " + e.getMessage()); 
      } 
      final String text = "Your Wall Post: " + message; 

     } 
    } 
+0

それは作業コードです、私は自分の写真とメッセージを私のSDカードから正面壁に掲示することができます....... – Sock

+0

ありがとうございました。しかし、私はすでに答えを受け入れています。それは動作します。 –

関連する問題