12/08/2018, 13:48

Bạn có thể tạo một Apps gửi tin nhắn miễn phí với Digits Twitter phần 2

Trong bài giới thiệu về tính năng gửi tin nhắn với Digits Twitter lần trước Chi tiết tại đây . Các bạn hiện tại đã có account Digits rồi, tiếp đến trong bài viết này mình sẽ cùng nhau trao đổi về các vấn đề : Cài đặt Plugin vào Android Studio Viết một ứng dụng gửi tin nhắn tới bất kỳ số ...

digit_form.png

Trong bài giới thiệu về tính năng gửi tin nhắn với Digits Twitter lần trước Chi tiết tại đây . Các bạn hiện tại đã có account Digits rồi, tiếp đến trong bài viết này mình sẽ cùng nhau trao đổi về các vấn đề :

  • Cài đặt Plugin vào Android Studio
  • Viết một ứng dụng gửi tin nhắn tới bất kỳ số điện thoại nào.

1. Thêm Plugin Digits vào Android Studio

Hãy mở Android Studio >> Settings >> Plugin ( chọn như ảnh dưới nhé ): install_fabric.jpg

2. Viết một ứng dụng gửi tin nhắn tới bất kỳ số điện thoại nào

Sau khi cài xong chúng ta sẽ có thêm một biểu tượng của Fabric và bạn chỉ cần click vào nó rồi login tài khoản bạn đã tạo ở ** Phần 1 **

step2_install_digits.jpg

Login thành công bạn sẽ được chuyển hướng tới màn hình chọn Project, khi chọn xong bạn hãy lựa chọn mục Digit nhé :v

step3_install_digits.jpg

Tới đây rồi thì account của bạn lúc đầu đăng kí đã có thể login trên trình duyệt rồi, và hẳn bạn vẫn còn nhớ " CONSUMER_KEY và CONSUMER_SECRET " phần cuối bài chứ ? Giờ chính là lúc dùng đến rồi. Input 2 key này vào lần lượt 2 ô của bước tiếp theo.

Lúc này bạn sẽ được gợi ý việc import tự động những phần code quan trọng để Apps có thể kết nối được với Fabric , bạn chỉ việc chọn Next thôi.

step3_install_digits.jpg

Vậy là khá ổn rồi đó, chúng ta vẫn còn mấy bước nữa để hoàn thành.

Bạn vào file xml của MainActivity ( ở đây mình đang gọi mặc định) và thêm button mặc định của Digit :

        <com.digits.sdk.android.DigitsAuthButton
        android:id="@+id/auth_button"
        android:layout_awidth="wrap_content"
        android:layout_height="wrap_content" />

Bạn cần phải Register an AuthCallback trong MainActivity:

DigitsAuthButton digitsButton = (DigitsAuthButton) findViewById(R.id.auth_button);
    digitsButton.setCallback(new AuthCallback() {
      @Override
      public void success(DigitsSession session, String phoneNumber) {
        // TODO: associate the session userID with your user model
        Toast.makeText(getApplicationContext(), "Authentication successful for "
              + phoneNumber, Toast.LENGTH_LONG).show();
      }

      @Override
      public void failure(DigitsException exception) {
        Log.d("Digits", "Sign in with Digits failure", exception);
      }
 });

Trên function success để bắt sự kiện khi user verify code thành công, bạn có thể thực hiện chuyển màn hình hay call tới Server ( thực hiện việc save number phone chẳng hạn ...)

Nhân tiện đây mình nói thêm phần Custom Theme cho activity của Digit. Tức là màn hình bạn input số điện thoại vào để gửi đi, vì màn hình này bạn không thể trực tiếp vào layout của nó để xử lý được.

Bạn tạo thêm 1 style trong file style : "CustomDigitTheme"

<style name="CustomDigitsTheme" parent="android:Theme.Light">
        <item name="android:textColorPrimary">@android:color/black</item>
        <item name="android:textColorSecondary">@android:color/darker_gray</item>
        <item name="android:windowBackground">@android:color/darker_gray</item>
        <item name="android:textColorLink">#ff398622</item>
        <item name="dgts__accentColor">#ffacee</item>
</style>

Bây giờ bạn quay trở lại MainActivity thêm 1 function registerPhone để dùng trong action click button Login hoặc Sign up :

private void registerPhone(String mPhone) {
        String countryCode = mPhone.substring(0, 2);
        if (countryCode.equals("84"))
            phoneReg = "+" + mPhone;
        else
            phoneReg = "+84" + mPhone.replaceFirst("0", "");
            //The important line
        Digits.authenticate(callback, R.style.CustomDigitTheme, phoneReg, false);
        edt_setphone.setEnabled(true);
}

Hãy thử Build Apps lên và gửi tin nhắn xem kết qủa nha, nếu có thắc mắc các bạn comment phía dưới (code) và mong nhận đóng góp từ mọi người!

0