2016-05-30 22 views
0

Facebookの自分のタイムラインにユーザーのステータスメッセージを投稿するAndroidアプリがあります(以下のメッセージを投稿するコードの断片を参照)。絵文字のようなステータスイメージ。私はバイト配列(誰かが別の投稿にそれを示唆した)として役に立たない画像を送信しようとしました。画像は拒否され、画像のURLを投稿するとFacebookは実際の画像の代わりにURLを挿入します。画像を実際の画像として投稿する方法はありますか? AndroidとAndroid Studio 2.1用のFacebook SDK 4.11を使用しています。どんなヒントも歓迎されます。Android用Facebook SDKを使用してFacebookタイムラインに投稿する

postParams.putString("caption", getResources().getString(R.string.app_name)); // text to post 
postParams.putString("message", msg); 
postParams.putString("link", "https://www.terra7.net"); 

if (imgUrl != null) { 

    //Bitmap bi = BitmapFactory.decodeResource(getResources(), imgId); 
    //ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    //bi.compress(Bitmap.CompressFormat.PNG, 100, baos); 
    //byte[] data = baos.toByteArray(); 

    //postParams.putByteArray("picture", data); // image to post 
    postParams.putString("picture", imgUrl); // image to post 
} 

GraphRequest request = new GraphRequest(accessToken, "me/feed", postParams, HttpMethod.POST, new GraphRequest.Callback() { 
    @Override 
    public void onCompleted(GraphResponse response) { 
     if (response.getError() != null) { 
      Toast.makeText(MoodFragment.this.getContext(), response.getError().getErrorMessage(), Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 
request.executeAsync(); 

答えて

0

コードの下に試してみてください:

public void sharePhotoToFacebook() { 

     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic); 
     SharePhoto photo = new SharePhoto.Builder() 
       .setBitmap(bitmap) 
       .build(); 
     SharePhotoContent content = new SharePhotoContent.Builder() 
       .addPhoto(photo) 
       .build(); 
     ShareApi.share(content, new FacebookCallback<Sharer.Result>() { 
      @Override 
      public void onSuccess(Sharer.Result result) { 
       Log.e("onSuccess ", "result " + result); 
      } 

      @Override 
      public void onCancel() { 

      } 

      @Override 
      public void onError(FacebookException error) { 
       Log.e("onError ", "error " + error); 
      } 
     }); 
    } 

コードの上に使用するためにあなたが得る許可のためのコードの下に使用することができますpublish_actions権限が必要です:

public void getPermission() { 
     List<String> permissionNeeds = Arrays.asList("publish_actions");// - See more at: http://simpledeveloper.com/how-to-share-an-image-on-facebook-in-android/#sthash.v7b5g7GA.dpuf 
     loginManager = LoginManager.getInstance(); 
     loginManager.logInWithPublishPermissions(this, permissionNeeds); 
     loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
      @Override 
      public void onSuccess(LoginResult loginResult) { 
       sharePhotoToFacebook(); 
      } 

      @Override 
      public void onCancel() { 
       System.out.println("onCancel"); 
      } 

      @Override 
      public void onError(FacebookException exception) { 
       System.out.println("onError"); 
      } 
     }); 
     // - See more at: http://simpledeveloper.com/how-to-share-an-image-on-facebook-in-android/#sthash.v7b5g7GA.dpuf 


    } 
ここ

コードですありがとう

+0

ありがとうございました。私はすでにそれを試みましたが、 "publish_actions"は廃止され、Facebook SDK 4.xではサポートされなくなりました。それは動作しません – Sergiob

+0

私はイメージが "私/フィード"またはuse'rの壁に画像と一緒にテキストを投稿させることができる他の関連するコンテキストに投稿する必要があることを言及することを忘れてしまった – Sergiob

関連する問題