+1

[Android] Firebase invites

I.Giới thiệu Firebase cái tên đã quá quen thuộc với các bạn rồi nhỉ. Nhắc đến Firebase người ta hay nghĩ về Firebase Authentication, Firebase Realtime Database, Firebase Storage ... các tiện ích rất tiện lợi đầy mạnh mẽ và thiết thực. Nhưng với cái tên Firebase Invites thì mọi người không thấy có ấn tượng gì phải không, nó là 1 tinh năng của Firebase đó. Với tính năng này các bạn có thể mở rộng cũng như quảng bá sản phầm của mình thông qua Email hoặc SMS ? Bây giờ mình sẽ giới thiệu về cách dùng và lợi ích tuyệt vời của nó nhé.

II.Giới thiệu Firebase Invites

  1. Các chức năng
    • Dễ dàng gửi nội dung, lời mời trải nghiệm app đến bạn bè qua cả SMS và email
    • Danh sách liên hệ bạn bè lấy từ danh bạ Google và các địa chỉ liên hệ được lưu trữ cục bộ trên thiết bị.
    • Tin tức chia sẻ đến người nhận dựa trên các địa chỉ liên lạc mà người dùng giao tiếp thường xuyên.
    • Bạn có thể cài đặt tin nhắn mặc định hay có thể chỉnh sửa tin nhắn khi gửi lời mời. (hình ảnh, text, link)
    • Khi người dùng khác chấp nhận lời mời của bạn sẽ được phàn hồi lại, các nhà sản xuất app thường dùng tính năng này để tặng thưởng cho người dùng chia sẻ để tăng lượng cài đặt app.
  2. Cách thức hoạt động
    • Khi người dùng chạm vào một trong các nút Chia sẻ của ứng dụng và chọn kênh Lời mời của Firebase màn hình chia sẻ Lời mời của Firebase sẽ mở ra. Từ màn hình chia sẻ người dùng chọn người nhận từ các địa chỉ liên hệ và địa chỉ liên lạc của Google được lưu trữ cục bộ trên thiết bị, tùy chọn tùy chỉnh thư mời và gửi lời mời. Lời mời được gửi bằng email hoặc SMS, tùy thuộc vào thông tin liên hệ có sẵn và chứa Liên kết động đến ứng dụng của bạn. Khi người nhận lời mời mở liên kết động trong lời mời, chúng sẽ được gửi tới Cửa hàng Play hoặc App Store nếu họ cần cài đặt ứng dụng của bạn, khi đó ứng dụng của bạn mở và có thể truy xuất và xử lý liên kết.
  3. Thực thi code
    • Tạo 1 project firebase tại đây: https://console.firebase.google.com/?pli=1
    • Kích hoạt Firebase Dynamic Links bởi vì Firebase Invites được xây dựng trên Firebase Dynamic Links.
    • Khai báo thư viện trong file build.gradle
      compile 'com.google.firebase:firebase-invites:11.8.0'
    
    • Gửi 1 lời mời bằng cách thông qua 1 Intent
        private void onInviteClicked() {
        Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title))
            .setMessage("message title")
            .setDeepLink(Uri.parse("invitation_deep_link"))
            .setCustomImage(Uri.parse("invitation_image"))
            .setCallToActionText("invitation_action")
            .build();
    
    + setMessage: nội dung gửi đến bạn bè không thể vượt quá 100 ký tự
    + setDeepLink: link cài đặt app, khi người nhận được link này click vào sẽ đi đến google play, hoặc appstore cài đặt app
    + setCustomImage: thường là link icon của app, hình ảnh phải vuông và khoảng 600x600 pixel, hình ảnh không lớn hơn 4000x4000 pixel.
    + setCallToActionText: tên action bạn đã cài đặt, Không thể vượt quá 32 ký tự
    + Ngoài ra nếu là email bạn có thể thêm setEmailHtmlContent và setEmailSubject
    
  • Lời mời khi gửi đi sẽ nhận được Id trong onActivityResult của Activity

      @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                if (requestCode == REQUEST_INVITE) {
                    if (resultCode == RESULT_OK) {
                        // Get the invitation IDs of all sent messages
                        String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data);
                        for (String id : ids) {
                            Log.d(TAG, "onActivityResult: sent invitation " + id);
                        }
                    } 
                }
            }
    

    -> Sau khi người dùng chọn địa chỉ liên hệ và gửi lời mời, ứng dụng của bạn sẽ gọi lại tới onActivityResult, dùng Id này để xác thực lời mời từ ai, hộ trợ khi cần xác thực danh tính của người có lời mời.

  • Nhận lời mời.

      FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData data) {
                    if (data == null) {
                        Log.d(TAG, "getInvitation: no data");
                        return;
                    }
                    // Get the deep link
                    Uri deepLink = data.getLink();
                    // Extract invite
                    FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(data);
                    if (invite != null) {
                        String invitationId = invite.getInvitationId();
                    }
                }
            })
            .addOnFailureListener(this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w(TAG, "getDynamicLink:onFailure", e);
                }
            });
    
  • Khi người dùng nhận được lời mời, nếu người dùng chưa cài đặt ứng dụng, họ có thể chọn cài đặt ứng dụng từ Cửa hàng Google Play. Sau khi ứng dụng được cài đặt hoặc nếu ứng dụng đã được cài đặt, ứng dụng sẽ bắt đầu và nhận URL tới nội dung của nó. Để nhận URL đến nội dung của ứng dụng, hãy gọi getDynamicLink

IV.Kết Thúc

  • Kết quả sử dụng
    • Kích thích người dùng sử dụng app nhiều hơn thông qua mời gọi bạn bè người thân
    • Đa dạng thêm hình thức bounus của các ứng dụng
    • Là một hình thức maketing quảng bá ứng dụng
    • demo: https://github.com/firebase/quickstart-android/tree/master/invites
    • Xin cảm ơn các bạn đã đọc.

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí