[Android/SDK연동]친구(나)에게 카카오링크 메시지 보내기

2021. 5. 14. 15:58Android/튜토리얼 및 가이드

728x90
반응형
 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

1. AnroidManifest.xml에 쿼리 요소를 추가해주고 커스텀 스킴(Scheme)을 설정해줍니다.

<manifest package="com.example.sample">
    <!--queries에 카카오톡 패키지 추가-->
    <queries>
        <package android:name="com.kakao.talk" />
    </queries>
    ...
</manifest>
<activity android:name=".{YOUR_ACTIVITY_NAME}">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <!-- "kakao{YOUR_NATIVE_APP_KEY}://kakaolink" 형식의 앱 실행 스킴을 설정하는데 사용 -->
        <data android:host="kakaolink"
                android:scheme="kakao{YOUR_NATIVE_APP_KEY}" />
    </intent-filter>
</activity>

 

2. Kakao Sdk를 초기화시켜주는 클래스를 생성하고 해당 클래스 이름을 매니페스트 name에 추가합니다.

public class KakaoApplication extends Application {
    private static volatile KakaoApplication instance = null;
    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;

        // Kakao Sdk 초기화
        KakaoSdk.init(this, "0a7897983e0a0efaacad8f23437ba7a9");
    }
}
   <application
        android:name=".KakaoApplication"
        ... >

 

3. 카카오링크를 통해 보낼 템플릿을 설정해준다.

public static Content content;
public static Social social;
public static List<com.kakao.sdk.template.model.Button> buttons;
public static FeedTemplate defaultFeed;

Link link = new Link("https://jhuinee-diary.tistory.com/","https://jhuinee-diary.tistory.com/");
content = new Content("Title", "이미지 url", link , "desc");
social = new Social(286,45,845);
buttons = List.of(new com.kakao.sdk.template.model.Button("웹으로 보기",link));

defaultFeed = new FeedTemplate(GlobalVar.content, GlobalVar.social, buttons);

* com.kakao.sdk.template.model.Button : android.widget.Button과 중복되지 않게 안드로이드 자체에서 저렇게 추가됨

* 이 때 url은 카카오 디벨로퍼에 웹 도메인 URL로 등록해야한다.

 

4. LinkClient를 통해 해당 템플릿을 보낸다.

LinkClient.getInstance().defaultTemplate(mContext, defaultFeed,null, (linkResult, throwable) -> {
	if (throwable != null) {
		Log.e("TAG", "카카오링크 보내기 실패", throwable);
	}
	else if (linkResult != null) {
		mContext.startActivity(linkResult.getIntent());

		// 카카오링크 보내기에 성공했지만 아래 경고 메시지가 존재할 경우 일부 컨텐츠가 정상 동작하지 않을 수 있습니다.
		Log.w("TAG", "Warning Msg: "+ linkResult.getWarningMsg());
		Log.w("TAG", "Argument Msg: "+ linkResult.getArgumentMsg());
	}
	return null;
});
728x90
반응형