티스토리 뷰

[예제 1]

// KakaoLink API 초기화
KakaoLink kakaoLink = KakaoLink.getKakaoLink(getApplicationContext());
KakaoTalkLinkMessageBuilder messageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();

// 메시지 생성
messageBuilder.addText("안녕하세요. 카카오톡 메시지 전송 예제입니다.");
messageBuilder.addImage("http://example.com/image.jpg", 300, 200);

// 카카오톡 메시지 전송
Intent intent = messageBuilder.getIntent();
startActivity(intent);

 

[예제2]

  1. 카카오톡 API 등록 및 설정
  • 카카오 개발자 센터에서 애플리케이션 등록 후 REST API 키를 발급 받습니다.
  • 카카오톡 API를 사용하기 위해서는, 먼저 애플리케이션의 AndroidManifest.xml 파일에 KakaoTalkLinkScheme 스키마를 추가해야 합니다. 아래와 같이 <intent-filter> 태그를 추가합니다.
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="kakaolink" />
</intent-filter>

2. 카카오톡 API를 사용한 메시지 전송

  • 메시지를 전송하기 위해, KakaoLink 클래스를 사용합니다.
  • KakaoTalkLinkMessageBuilder 클래스를 사용하여 메시지를 작성합니다.
  • KakaoTalkLinkService 클래스의 getInstance() 메소드를 사용하여 KakaoLinkService 인스턴스를 가져옵니다.
  • KakaoLinkService 인스턴스의 sendDefault() 메소드를 호출하여 메시지를 전송합니다.

아래는 사진과 텍스트를 카카오톡으로 전송하는 예제 코드입니다.

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;

import com.kakao.kakaolink.KakaoLink;
import com.kakao.kakaolink.KakaoTalkLinkMessageBuilder;
import com.kakao.kakaolink.KakaoTalkLinkService;

import java.io.ByteArrayOutputStream;

public class KakaoTalkSender {
    public static void send(Context context, String message, Bitmap imageBitmap) {
        try {
            // 카카오톡 API 초기화
            KakaoLink kakaoLink = KakaoLink.getKakaoLink(context);
            KakaoTalkLinkMessageBuilder builder = kakaoLink.createKakaoTalkLinkMessageBuilder();

            // 메시지 추가
            builder.addText(message);

            // 이미지 추가
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
            builder.addImage(byteArray, 300, 200);

            // 카카오톡 링크 실행
            kakaoLink.sendMessage(builder, context);

        } catch (Exception e) {
            // 카카오톡이 설치되어 있지 않은 경우, 마켓으로 이동
            Uri uri = Uri.parse("market://details?id=com.kakao.talk");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            context.startActivity(intent);
        }
    }
}

 

[예제3]

카카오톡 특정 대화방에 메시지를 전송하려면, KakaoTalkLinkMessageBuilder 클래스의 addAppButton() 메소드를 사용하여 대화방을 선택할 수 있는 버튼을 추가해야 합니다. 버튼을 클릭하면 카카오톡 대화방 선택 화면이 나타납니다. 사용자가 대화방을 선택하면 해당 대화방으로 메시지가 전송됩니다.

아래는 사진과 텍스트를 카카오톡의 특정 대화방에 전송하는 안드로이드 앱의 예제 코드입니다.

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.kakao.kakaolink.KakaoLink;
import com.kakao.kakaolink.KakaoTalkLinkMessageBuilder;
import com.kakao.kakaolink.KakaoTalkLinkService;

import java.io.ByteArrayOutputStream;

public class MainActivity extends AppCompatActivity {
    // 카카오톡 링크 요청 코드
    private static final int REQUEST_CODE_KAKAO_TALK = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 카카오톡으로 전송할 메시지 작성
        String message = "안녕하세요. 카카오톡으로 메시지를 전송합니다.";

        // 전송할 이미지
        Bitmap imageBitmap = ...

        // 카카오톡 API 초기화
        KakaoLink kakaoLink = KakaoLink.getKakaoLink(this);
        KakaoTalkLinkMessageBuilder builder = kakaoLink.createKakaoTalkLinkMessageBuilder();

        // 메시지 추가
        builder.addText(message);

        // 이미지 추가
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        builder.addImage(byteArray, 300, 200);

        // 대화방 선택 버튼 추가
        builder.addAppButton("카카오톡으로 전송", new Intent(Intent.ACTION_VIEW, Uri.parse("kakaotalk://pickchat")));

        // 카카오톡 링크 실행
        kakaoLink.sendMessage(builder, this);

        // 카카오톡 대화방 선택 화면이 나타납니다.
        // 사용자가 대화방을 선택하면 해당 대화방으로 메시지가 전송됩니다.
    }
}

위의 코드에서 builder.addAppButton() 메소드를 사용하여 대화방 선택 버튼을 추가하고, Intent.ACTION_VIEW 액션과 kakaotalk://pickchat URI를 사용하여 카카오톡 대화방 선택 화면을 실행합니다.

메시지를 전송하는 경우 kakaoLink.sendMessage(builder, this); 메소드를 사용하며, 이 경우 onActivityResult() 콜백을 통해 결과를 받을 필요가 없습니다. 대신, 카카

반응형
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함