카카오 공유하기 코드 수정

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


카카오 공유하기 코드에서 에러가 발생합니다.

이슈1.
button과 content 외에 다른 곳을 눌렀을때도 link 클릭이 작동됨.
단 작동할때 webUrl: Uri.parse(shareUrlcustom) 이 URL이 아니라
https://orderia.io 이 작동이 되어 오류가 발생함.

문의 사항1.

  • 해당 부분들에 대해서 클릭이 작동 안되는 방법이 있다면 알려주시고 없다면 link 코드를 어떻게 삽입해야 하는지 가이드 부탁드립니다.

이슈와 상관없는 문의사항입니다.

문의 사항
social: Social(likeCount: 286, sharedCount: 845),
여기에서 사람 아이콘을 쓰고 싶은데 관련된 문서 가이드를 못 찾겠습니다.
가이드 링크 또는 사람 아이콘을 표현하는 표현 법을 부탁드리겠습니다.

[아래 코드 예제]
import ‘/backend/backend.dart’;
import ‘/backend/supabase/supabase.dart’;
import ‘/flutter_flow/flutter_flow_theme.dart’;
import ‘/flutter_flow/flutter_flow_util.dart’;
import ‘/custom_code/actions/index.dart’; // Imports other custom actions
import ‘/flutter_flow/custom_functions.dart’; // Imports custom functions
import ‘package:flutter/material.dart’;

import ‘package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart’;

Future shareKakao(
BuildContext context,
String shareUrlcustom,
String? ibtitype,
String? soccerplayerimg,
String? playerslogan1,
String? playerslogan2,
) async {
// defaultFeed를 먼저 정의합니다.
final FeedTemplate defaultFeed = FeedTemplate(
content: Content(
title: ‘’,
imageUrl: Uri.parse(
https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/cafewooju-ggrywd/assets/5fei09yld1kj/Share_Thumbnail.jpg’),
link: Link(
webUrl: Uri.parse(shareUrlcustom),
mobileWebUrl: Uri.parse(shareUrlcustom)),
),
itemContent: ItemContent(
profileText: ibtitype,
profileImageUrl: Uri.parse(soccerplayerimg ?? ‘’),
titleImageText: playerslogan1,
titleImageCategory: playerslogan2,
),
social: Social(likeCount: 286, sharedCount: 845),
buttons: [
Button(
title: ‘IBTi 내 몸 유형 검사 시작’,
link: Link(
webUrl: Uri.parse(shareUrlcustom),
mobileWebUrl: Uri.parse(shareUrlcustom),
),
),
],
);

bool isKakaoTalkSharingAvailable =
await ShareClient.instance.isKakaoTalkSharingAvailable();

if (isKakaoTalkSharingAvailable) {
try {
Uri uri = await ShareClient.instance.shareDefault(template: defaultFeed);
await ShareClient.instance.launchKakaoTalk(uri);

  print('카카오톡 공유 완료');
} catch (error) {
  print('카카오톡 공유 실패 $error');
}

} else {
try {
Uri shareUrl =
await WebSharerClient.instance.makeDefaultUrl(template: defaultFeed);
await launchBrowserTab(shareUrl, popupOpen: true);
} catch (error) {
print(‘카카오톡 공유 실패 $error’);
}
}
}

정의된 링크 영역외 클릭 시, 디벨로퍼스 설정의 첫번째 도메인인 출처 링크로 이동하게됩니다. 해당 동작은 정상동작입니다.


문의 사항1.

  • 해당 부분들에 대해서 클릭이 작동 안되는 방법이 있다면 알려주시고 없다면 link 코드를 어떻게 삽입해야 하는지 가이드 부탁드립니다.

코드내 메시지를 구성하는 디폴트 템플릿 방식으로는 변경하는 방법은 없고 디벨로퍼스 설정의 첫번째 도메인을 변경하시면 됩니다.

디벨로퍼스 메시지 템플릿 도구로 미리 메시지를 구성하는 커스텀 템플릿 방식을 사용하는 경우 “기타> 출처링크 설정” 메뉴에서 설정가능합니다.


문의 사항
social: Social(likeCount: 286, sharedCount: 845),
여기에서 사람 아이콘을 쓰고 싶은데 관련된 문서 가이드를 못 찾겠습니다.
가이드 링크 또는 사람 아이콘을 표현하는 표현 법을 부탁드리겠습니다.

소셜 Object는 정해진 타입으로만 표현가능합니다.
구독자 아이콘을 말씀하신거라면 subscriberCount 사용하시면됩니다.

1개의 좋아요

문의 사항1. 에 대한 추가 질의입니다.

위처럼 커스텀 템플릿을 사용하기 위해서 위 처럼 코드로 만들어서 표현하고 있습니다.

질문1. 디벨로퍼스의 설정의 첫번째 도메인이란 것은
플랫폼 > Web > 사이트 도메인을 이야기 하는 것인가요?

질문 2. 위 코드에서처럼 각 URL주소 경로가 개인마다 다르게 되어 있는데 이를 반영할 수 있는 방법은 없나요?

ID 정보는 다음과 같습니다.
ID 906916

위처럼 커스텀 템플릿을 사용하기 위해서 위 처럼 코드로 만들어서 표현하고 있습니다.

메시지 템플릿 | Kakao Developers 메시지 템플릿

참고로
코드로 만들어 표현하는 것을 저희는 디폴트 템플릿이라 명명하고 있고
도구에서 미리 정의한 것을 커스텀템플릿이라 명명하고 있습니다. (코드에서는 템플릿ID와 전달할 파라메터만 설정)


질문1. 디벨로퍼스의 설정의 첫번째 도메인이란 것은
플랫폼 > Web > 사이트 도메인을 이야기 하는 것인가요?

네, 맞습니다.


질문 2. 위 코드에서처럼 각 URL주소 경로가 개인마다 다르게 되어 있는데 이를 반영할 수 있는 방법은 없나요?

커스텀 템플릿에 path파라메터를 전달할 수 있습니다. (도메인은 기등록된 도메인만 사용할 수 있습니다.)

메시지 템플릿 | Kakao Developers 메시지 템플릿

빠른 답변 감사드립니다.

제가 아직 잘 이해가 안되는 부분이 있어서 재차 문의드립니다.

커스텀 템플릿에서 개별 링크 설정을 하려고 하는데

위 코드에서 보면
content와 Buttons 오브젝트에는
각각
webUrl: Uri.parse(shareUrlcustom),
mobileWebUrl: Uri.parse(shareUrlcustom),
을 넣었습니다.

다만,
다른 오브젝트들인 itemContent, Social 그리고 맨 하단에 (정확한 오브젝트명 모르겠음) 부분에 개별 링크를 넣으려고 하면 본 제가 원하는 URL로 가지 않고 시스템의 기본 URL로 갑니다.
템플릿 만들기에서 보면 개별링크 설정과 공통링크 사용이 있는것으로 봐서 커스텀 템플릿에도 넣을 수 있지 않을까 하는데 방법을 모르겠습니다.

다른 오브젝트에는 링크를 설정할 수 없습니다.
출처링크로 이동하며, 출처링크 설정은 위에 안내드린 것처럼 진행하시면됩니다.