Шаринг Facebook без диалогового окна

Нужно реализовать кнопку "Поделиться", которая работала бы без диалогового окна. То есть пользователь, авторизовавшийся в фейсбуке, мог одним нажатием кнопки Share, поделится нужной записью без диалоговых окон, подтверждений и т.д.


Ответы (1 шт):

Автор решения: Andrew

Лучше все-таки делать через диалоговые окна, так как это встроенный механизм и он работает лучше чем кастомные решения. Но тем не менее вот есть способ (на примере фотографии):

private void sharePhotoToFacebook()
{
   Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.avatar);

   SharePhoto photo = new SharePhoto.Builder()
                .setBitmap(image)
                .setCaption("Nice Place.....")
                .build();

  SharePhotoContent content = new SharePhotoContent.Builder()
                .addPhoto(photo)
                .build();

  ShareApi.share(content,null);
  Toast.makeText(facebook_signin.this,"Facebook Photo Upload Complated",Toast.LENGTH_LONG).show();

}

и дальше нажатие на кнопку:

share.setOnClickListener(   new View.OnClickListener() {
            @Override
            public void onClick(View view) 
            {
                sharePhotoToFacebook();
            }
        });

вот так же есть способ:

ShareButton shareButton = (ShareButton)findViewById(R.id.fb_share_button);
// Sharing the content to facebook
ShareLinkContent content = new ShareLinkContent.Builder()
        // Setting the title that will be shared
        .setContentTitle("Planning a trip to Dubai?")
        // Setting the description that will be shared
        .setContentDescription("Make sure you visit unique attractions recommended by the local people!")
        // Setting the URL that will be shared
        .setContentUrl(Uri.parse("https://justa128.github.io/dubai-tour-guide/landingpage/"))
        // Setting the image that will be shared
        .setImageUrl(Uri.parse("https://cdn-images-1.medium.com/fit/t/800/240/1*jZ3a6rYqrslI83KJFhdvFg.jpeg"))
        .build();
shareButton.setShareContent(content);

Вот вопросы по вашей тематике: 1, 2 и 3.

→ Ссылка