본 강좌에서는 Java를 활용하여 안드로이드 앱을 개발하며, 카카오톡 알림을 보내는 기능을 구현할 것입니다.
카카오톡 API를 활용하여 사용자에게 특정 이벤트 발생 시 알림을 전송하는 기능을 complete할 예정입니다.
이 과정에서는 Android Studio를 기준으로 설명하며, 기본적인 안드로이드 개발 지식이 요구됩니다.
사전 준비 사항
- Java 및 안드로이드 SDK 설치 및 설정
- Android Studio 설치
- 카카오톡 개발자 계정 및 앱 생성
- API Key 및 Secret Key 확인
1. Android Studio 프로젝트 설정
Android Studio를 열고 새로운 프로젝트를 생성합니다. “Empty Activity”를 선택하고 기본 설정을 완료한 후 프로젝트를 생성합니다.
1.1 Gradle 설정
다음으로, app 모듈의 build.gradle 파일을 열고 필요한 라이브러리를 추가합니다. 카카오톡 API를 이용하기 위해서는 Retrofit2와 Gson을 사용할 것입니다.
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}
2. 카카오톡 API 연동
카카오톡 개발자 센터에서 애플리케이션을 생성하고, API Key를 확인합니다. 이 키는 향후 API 호출 시 필요합니다.
2.1 Retrofit 설정
Retrofit을 사용하여 API를 통신하기 위한 설정을 추가합니다. Retrofit 인스턴스를 생성하고, 필요한 API 인터페이스를 구성합니다.
public interface KakaoApi {
@FormUrlEncoded
@POST("/v2/api/talk/memo/default/send")
Call sendMessage(@Header("Authorization") String token,
@Field("template_object") String templateObject);
}
2.2 API 호출을 위한 메서드 구현
카카오톡 API를 호출하여 메세지를 전달하는 메서드를 구현합니다. 발신자를 인증하기 위해 OAuth 인증이 필요합니다.
public class KakaoService {
private static final String BASE_URL = "https://kapi.kakao.com";
private KakaoApi kakaoApi;
public KakaoService() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
kakaoApi = retrofit.create(KakaoApi.class);
}
public void sendKakaoTalk(String accessToken, String message) {
String jsonTemplate = "{\"object_type\":\"text\",\"text\":\"" + message + "\"}";
Call call = kakaoApi.sendMessage("Bearer " + accessToken, jsonTemplate);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
Log.d("KakaoTalk", "메시지 전송 성공");
} else {
Log.d("KakaoTalk", "메시지 전송 실패: " + response.message());
}
}
@Override
public void onFailure(Call call, Throwable t) {
Log.d("KakaoTalk", "에러 발생: " + t.getMessage());
}
});
}
}
3. 사용자 인터페이스 구현
사용자에게 입력을 받을 수 있는 간단한 UI를 만듭니다. EditText와 Button을 사용하여 메시지를 입력 받고 전송할 수 있는 기능을 구현합니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/messageInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="메시지를 입력하세요"/>
<Button
android:id="@+id/sendButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="발송"/>
</LinearLayout>
3.1 Activity에서 UI와 연결
UI 요소를 Activity와 연결하여 버튼 클릭 시 카카오톡 메시지를 전송하도록 합니다.
public class MainActivity extends AppCompatActivity {
private KakaoService kakaoService;
private EditText messageInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
messageInput = findViewById(R.id.messageInput);
Button sendButton = findViewById(R.id.sendButton);
kakaoService = new KakaoService();
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String message = messageInput.getText().toString();
String accessToken = "YOUR_ACCESS_TOKEN"; // 여기에 액세스 토큰을 입력하세요
kakaoService.sendKakaoTalk(accessToken, message);
}
});
}
}
4. 테스트 및 배포
앱을 실행하고 메시지를 입력한 뒤 ‘발송’ 버튼을 클릭하면 카카오톡으로 메시지가 전송되는지 확인합니다.
문제가 없다면, APK 파일로 배포하여 다른 기기에서도 사용할 수 있습니다.
이 강좌를 통해 카카오톡 API를 활용하여 안드로이드 앱에서 직접 알림을 보낼 수 있는 기능을 구현할 수 있었습니다.
향후 추가적인 기능으로는, 사용자의 폰 알림을 캐치하여 자동으로 카카오톡 메시지를 보내는 기능 등도 고려해 볼 수 있습니다.
이러한 기능들을 통해 더 많은 사용자와 소통하는 앱을 만들어 보세요!