티스토리 뷰
안녕하세요 박스여우입니다.
이번에는 카카오톡을 통해 링크와 이미지를 공유하는 방법에 대해 알아보겠습니다.
■ 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, 300, 200); kakaoTalkLinkMessageBuilder.addWebButton("자세히 보기", siteUrl); kakaoLink.sendMessage(kakaoTalkLinkMessageBuilder.build(), ViewerActivity.this); } catch (KakaoParameterException e) { e.printStackTrace(); } } }); | cs |
위의 코드가 끝입니다! 정말 간단하죠?
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Android - dp, 다양한 해상도 지원하기 (399) | 2017.06.11 |
---|---|
Android Bitmap 이미지를 다룰때 Out Of Memory 방지 (397) | 2016.08.22 |
Android ScrollView 스크롤이 바닥에 닿았을 때 자동 refresh (427) | 2016.08.18 |
Android AdMob 전면광고 달기 (403) | 2016.05.19 |
Android 6.0 - Permission 이용 런타임 권한 모델 (403) | 2016.05.12 |