KonifarPod

FacebookSDKがMessage Dialogに対応したようなので使ってみた

   

Pocket

AndroidのFacebookSDKがMessageDialogに対応したらしいので使ってみました。

MessageDialogというのは、FacebookメッセンジャーアプリでアプリのOpenGraphシェア等を可能にするダイアログです。こんな感じに送れるようになります。

Facebook sdk1

Activityの中でやる場合のコードはこんな感じ。(SDKのインストールや細かい初期化は省略します)

    void onClickBtnFacebook() {
        if (FacebookDialog.canPresentMessageDialog(this,
                FacebookDialog.MessageDialogFeature.MESSAGE_DIALOG)) {
            showFacebookMessageDialog();
        } else {
            /*
             * Facebookメッセンジャーがインストールされていない場合にシェアできないので、
             * Facebook本体のシェアダイアログを表示できればここでする。
             */
            showFacebookShareDialog();
        }
    }

    private void showFacebookShareDialog() {
        if (FacebookDialog.canPresentShareDialog(this,
                FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) {
            try {
                FacebookDialog.ShareDialogBuilder builder =
                        new FacebookDialog.ShareDialogBuilder(this)
                                .setPicture(imageUrl)
                                .setName(name)
                                .setDescription(description)
                                .setLink(url);
                builder.build().present();
            } catch (FacebookException e) {
                // error handling
            }
        } else {
            showToast("Facebook App is not installed.");
        }
    }

    private void showFacebookMessageDialog() {
        try {
            FacebookDialog.MessageDialogBuilder builder =
                    new FacebookDialog.MessageDialogBuilder(this)
                    .setLink(url)
                    .setName(name)
                    .setCaption(caption)
                    .setPicture(imageUrl)
                    .setDescription(description);
            builder.build().present();
        } catch (FacebookException ex) {
            // error handling
        }
    }

 

MessageDialogを作る時に指定できるname、url、caption、picture、descriptionが指定できるのですが、メソッドとの対応はこんな感じ。

Facebook sdk2

① setCaption(caption)

② setPicture(imageUrl)

③ setName(name)

④ setLink(url)

⑤ setDesription(description)

当然、タップした時の遷移先を指定するのは④のsetLink()です。

 

また、Facebookメッセンジャーがインストールされていない場合には自動的にFacebookが開くなんて気の利いたことはしてくれないので、自分で分岐を書く必要があります。

if (FacebookDialog.canPresentMessageDialog(this, FacebookDialog.MessageDialogFeature.MESSAGE_DIALOG))

でFacebookメッセンジャーが使えるかどうかは確認できるので、falseだった時は通常のFacebookアプリのシェアダイアログが表示されるようにしてみました。

 

タイムラインにシェアよりも、メッセンジャー経由でのシェアで入ってきたユーザーはコンバージョン率・継続率ともに高くなる傾向があるので、導入も簡単ですし使ってみてはいかがでしょうか?

Pocket

 - Develop, Facebook ,