티스토리 뷰

안녕하세요 박스여우입니다.

이번에는 카카오톡을 통해 링크와 이미지를 공유하는 방법에 대해 알아보겠습니다.




Kakao Developer

저희가 사용할 API는 카카오톡에서 제공해 주는 카카오링크 입니다. 카카오링크를 사용하기 위해서는 KakaoDeveloper 로 이동하여 API를 사용할 앱을 등록해야 합니다.


앱 만들기를 클릭하고 등록할 앱의 이름을 입력한 뒤 Create 버튼을 눌러 주세요. 이 때 이름은 자유롭게 적어주시면 됩니다.



그 다음으로 일반>플랫폼>플랫폼 추가 버튼을 눌러 정확한 앱의 정보를 등록합니다. 이번 포스팅에서는 안드로이드를 기준으로 진행하겠습니다. 해당 애플리케이션의 패키지명을 입력하신 뒤 추가 버튼을 누르시면 됩니다.



그럼 이처럼 키 해시 입력란이 비게 되는데요, 키 해시에는 해당 앱의 키 해시를 입력하시면 됩니다. 키 해시를 구하는 방법은 여러가지가 있지만, 제가 생각하기에 가장 편한 방법은 코드를 이용한 방법인것 같습니다.


키 해시 구하는법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    // 추가
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.package"
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {
 
    } catch (NoSuchAlgorithmException e) {
 
    }
}
 
cs

onCreate메소드에 다음과 같은 코드를 추가하여 Log에 출력되는 KeyHash를 이용하시면 됩니다.



키 해시를 입력하셨다면 플랫폼 추가를 다시 클릭하여 카카오톡을 통해 공유할 웹사이트의 도메인(주소)를 입력해 추가해 줍시다. 만약 이 작업을 하지 않는다면 카카오톡을 통해 링크를 공유할 수 없습니다.



이제 Gredle을 셋팅하여 API를 사용할 준비를 해야 합니다.

1
2
3
4
5
6
    subprojects {
        repositories {
            mavenCentral()
            maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
        }
    }
cs

build.gradle에 위와 같이 maven 저장소를 등록합니다.



1
compile group: project.KAKAO_SDK_GROUP, name: 'kakaolink', version: project.KAKAO_SDK_VERSION
cs

그 다음으로 위와 같이 카카오 sdk를 추가해 줍니다.



1
2
KAKAO_SDK_GROUP=com.kakao.sdk
KAKAO_SDK_VERSION=1.1.4
cs

그리고 마지막으로 gradle.properties에 다음과 같이 저장해 줍시다. gradle.properties에 추가할 필요 없이 build.gradle에 바로 적어주셔도 상관없습니다.



API 셋팅이 모두 끝났습니다. 마지막으로 핵심적인 카카오톡에 링크를 공유하는 코드를 작성해 봅시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        final String str = "공유할 내용";
        final String imgSrc = "https://t1.daumcdn.net/cfile/tistory/215BCC41578ACAE31D";
        final String siteUrl = "등록한 url";
        ((Button) findViewById(R.id.kakao)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    kakaoLink = KakaoLink.getKakaoLink(getApplicationContext());
                    kakaoTalkLinkMessageBuilder = kakaoLink.createKakaoTalkLinkMessageBuilder();
                    kakaoTalkLinkMessageBuilder.addText(str);
                    kakaoTalkLinkMessageBuilder.addImage(imgSrc, 300200);
                    kakaoTalkLinkMessageBuilder.addWebButton("자세히 보기", siteUrl);
                    kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), ViewerActivity.this);
                } catch (KakaoParameterException e) {
                    e.printStackTrace();
                }
            }
        });

cs

위의 코드가 끝입니다! 정말 간단하죠?



댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 29 30
글 보관함