728x90
반응형
// 카카오 이미지
public void share_kakao_image() {
/*
// 지도 , 이미지 , 단순 링크
참고 주소 :
1)
https://thisisspear.tistory.com/52
2)
https://developers.kakao.com/docs/latest/ko/message/message-template#social
*/
String title ="타이틀";
String imageUrl = "http://mud-kage.kakao.co.kr/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg";
String descrption = "카카오 피드 메세지 템플릿.";
// 5개의 속성 중 최대 3개까지만 표시해 줍니다. 우선 순위는 Like > Comment > Shared > View > Subscriber 순서입니다.
int like_count = 10;
int comment_count = 20;
int share_count = 30;
int view_count = 40;
int sub_count = 50;
FeedTemplate params = FeedTemplate
.newBuilder(ContentObject.newBuilder(title,imageUrl,
// ListTemplate
LinkObject.newBuilder()
.setWebUrl("https://developers.kakao.com")
.setMobileWebUrl("https://developers.kakao.com")
.build())
.setDescrption(descrption)
.build())
.setSocial(SocialObject.newBuilder()
.setLikeCount(like_count)
.setCommentCount(comment_count)
.setSharedCount(share_count)
.setViewCount(view_count)
.setSubscriberCount(sub_count)
.build()) //소셜 카운트
.addButton(new ButtonObject("웹에서 보기", LinkObject.newBuilder()
.setWebUrl("'https://developers.kakao.com")
.setMobileWebUrl("'https://developers.kakao.com").build()))
.addButton(new ButtonObject("앱에서 보기", LinkObject.newBuilder()
.setWebUrl("'https://developers.kakao.com")
.setMobileWebUrl("'https://developers.kakao.com")
.setAndroidExecutionParams("key1=valgeue1")
.setIosExecutionParams("key1=value1")
.build()))
.build();
Map<String, String> serverCallbackArgs = new HashMap<String, String>();
serverCallbackArgs.put("user_id", "${current_user_id}");
serverCallbackArgs.put("product_id", "${shared_product_id}");
KakaoLinkService.getInstance().sendDefault(this, params, serverCallbackArgs, new ResponseCallback<KakaoLinkResponse>() {
@Override
public void onFailure(ErrorResult errorResult) {
Logger.e(errorResult.toString());
mLog(TAG,errorResult.toString());
}
@Override
public void onSuccess(KakaoLinkResponse result) {
// 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
mLog(TAG, "성공"+result);
/* mLog(TAG, "result.getTemplateId();"+result.getTemplateId());
mLog(TAG, "result.getTemplateArgs();"+result.getTemplateArgs().toString());*/
}
});
}
// 카카오 지도
public void share_kakaoMap() {
/*
// 지도 , 이미지 , 단순 링크
참고 주소 :
1)
https://thisisspear.tistory.com/52
2)
https://developers.kakao.com/docs/latest/ko/message/message-template#social
*/
String title ="타이틀";
String descrption = "카카오 지도 메세지 템플릿.";
// 5개의 속성 중 최대 3개까지만 표시해 줍니다. 우선 순위는 Like > Comment > Shared > View > Subscriber 순서입니다.
int like_count = 10;
int comment_count = 20;
int share_count = 30;
int view_count = 40;
int sub_count = 50;
// 검색할 주소
String address = "인천시 계양구 계산로 171";
// 이미지가 없으면 비어서 보여진다. null은 안됨
String imageUrl = "http://mud-kage.kakao.co.kr/dn/bSbH9w/btqgegaEDfW/vD9KKV0hEintg6bZT4v4WK/kakaolink40_original.png";
LocationTemplate params = LocationTemplate.newBuilder(
address, // 보여줄 주소
// Builder newBuilder(final String title, final String imageUrl, final LinkObject link)
ContentObject.newBuilder(title,imageUrl,
// ListTemplate
LinkObject.newBuilder() // 링크 오브젝트
.setWebUrl("https://developers.kakao.com")
.setMobileWebUrl("https://developers.kakao.com")
.build())
.setDescrption(descrption)
.build())
//위치 보기시 하단에 나타나는 타이틀
.setAddressTitle("주소 타이틀")
// 소셜 카운트
.setSocial(SocialObject.newBuilder() // 소셜 오브젝트
.setLikeCount(like_count)
.setCommentCount(comment_count)
.setSharedCount(share_count)
.setViewCount(view_count)
.setSubscriberCount(sub_count)
.build())
// 버튼 1
.addButton(new ButtonObject("자세히 보기", LinkObject.newBuilder()
.setWebUrl("'https://developers.kakao.com")
.setMobileWebUrl("'https://developers.kakao.com")
.setAndroidExecutionParams("key1=value1") // JSON -> P-> DID 주소 뒤에 담김.
.setIosExecutionParams("key1=value1")
.build())
).build();
Map<String, String> serverCallbackArgs = new HashMap<String, String>();
serverCallbackArgs.put("user_id", "${current_user_id}");
serverCallbackArgs.put("product_id", "${shared_product_id}");
KakaoLinkService.getInstance().sendDefault(this, params, serverCallbackArgs, new ResponseCallback<KakaoLinkResponse>() {
@Override
public void onFailure(ErrorResult errorResult) {
Logger.e(errorResult.toString());
mLog(TAG,errorResult.toString());
}
@Override
public void onSuccess(KakaoLinkResponse result) {
// 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
mLog(TAG, "성공"+result);
mLog(TAG, "result.getTemplateMsg();"+result.getTemplateMsg());
/* mLog(TAG, "result.getTemplateId();"+result.getTemplateId());
mLog(TAG, "result.getTemplateArgs();"+result.getTemplateArgs().toString());*/
}
});
}
// 카카오 텍스트
public void share_kakao_text(){
/*
// 지도 , 이미지 , 단순 링크
참고 주소 :
1)
https://thisisspear.tistory.com/52
2)
https://developers.kakao.com/docs/latest/ko/message/message-template#social
*/
String content_text ="텍스트값";
//final String text, final LinkObject linkObject) {
TextTemplate params = TextTemplate.newBuilder(
content_text, // 텍스트값
LinkObject.newBuilder() // 링크 오브젝트
.setWebUrl("https://developers.kakao.com")
.setMobileWebUrl("https://developers.kakao.com")
.build())
// 버튼 1
.addButton(new ButtonObject("버튼 1", LinkObject.newBuilder()
.setWebUrl("'https://developers.kakao.com")
.setMobileWebUrl("'https://developers.kakao.com")
.setAndroidExecutionParams("key1=value1") // JSON -> P-> DID 주소 뒤에 담김.
.setIosExecutionParams("key1=value1")
.build()))
// 버튼 2
.addButton(new ButtonObject("버튼 2", LinkObject.newBuilder()
.setWebUrl("'https://developers.kakao.com")
.setMobileWebUrl("'https://developers.kakao.com")
.setAndroidExecutionParams("key1=value1") // JSON -> P-> DID 주소 뒤에 담김.
.setIosExecutionParams("key1=value1")
.build()))
.build();
Map<String, String> serverCallbackArgs = new HashMap<String, String>();
serverCallbackArgs.put("user_id", "${current_user_id}");
serverCallbackArgs.put("product_id", "${shared_product_id}");
KakaoLinkService.getInstance().sendDefault(this, params, serverCallbackArgs, new ResponseCallback<KakaoLinkResponse>() {
@Override
public void onFailure(ErrorResult errorResult) {
Logger.e(errorResult.toString());
mLog(TAG,errorResult.toString());
}
@Override
public void onSuccess(KakaoLinkResponse result) {
// 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다. 전송 성공 유무는 서버콜백 기능을 이용하여야 한다.
mLog(TAG, "성공"+result);
/* mLog(TAG, "result.getTemplateId();"+result.getTemplateId());
mLog(TAG, "result.getTemplateArgs();"+result.getTemplateArgs().toString());*/
}
});
}
// 카카오 템플릿
public void share_kakao_template(){
// 템플릿 종류 : 피트, 리스크, 커머스
String templateId = "44618"; // 템플릿 피드아이디
// 템플릿에서 사용할 데이터 맵
Map<String, String> templateArgs = new HashMap<String, String>();
templateArgs.put("img", "https://taegon.kim/wp-content/uploads/2018/05/image-9.png");
templateArgs.put("title","제목");
templateArgs.put("sub","텍스트");
templateArgs.put("img2","https://taegon.kim/wp-content/uploads/2018/05/image-9.png");
KakaoLinkService.getInstance().sendCustom(this, templateId, templateArgs, new ResponseCallback<KakaoLinkResponse>() {
@Override
public void onFailure(ErrorResult errorResult) {
Log.e("EOTEST",errorResult.toString());
}
@Override
public void onSuccess(KakaoLinkResponse result) {
// 템플릿 밸리데이션과 쿼터 체크가 성공적으로 끝남. 톡에서 정상적으로 보내졌는지 보장은 할 수 없다.
}
});
}
버튼클릭으로 앱으로 이동 했을때 데이터 받기
// 앱으로 이동시 담은 데이터 가지고 오기
Intent intent = getIntent();
if(intent.getAction() == Intent.ACTION_VIEW){
String data = intent.getDataString();
Log.d("TEST","data : "+data);
// setAndroidExecutionParams에서 전달했던 키값
String test = intent.getData().getQueryParameter("key1");
Log.d("TEST","data _ test: "+test);
}
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kr.co.test.test_module">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.test_module">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</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="@string/kakao_scheme"
android:host="@string/kakaolink_host" />
</intent-filter>
</activity>
<meta-data
android:name="com.kakao.sdk.AppKey"
android:value="@string/kakao_app_key" />
</application>
</manifest>
728x90
반응형
'Android' 카테고리의 다른 글
Android SNS 공유하기 - facebook (0) | 2021.01.15 |
---|---|
Android 공유하기 - 네이버 관련 (0) | 2021.01.14 |
키해시 구하기 (1) | 2021.01.12 |
Android SNS 공유하기 - 스크랩 (0) | 2021.01.12 |
(시간 동기화 관련)날자 형식 -> 밀리세컨드 로 변환 (0) | 2020.12.08 |