메시지
IM과 TPNS를 동시에 통합한 후 많은 벤더 충돌이 발생합니다. 어떻게 해야 하나요?
현재 IM은 TPNS에서 제공하는 벤더 jar 패키지를 사용합니다. Offline Push (Android) 문서를 참고하여 관련 종속성 패키지를 교체하면 이 문제를 해결할 수 있습니다.
메시지 미수신 또는 메시지 손실 시 어떻게 해결합니까?
1:1 채팅 메시지
메시지가 성공적으로 발송되었는지 확인합니다.
수신자가 성공적으로 로그인했는지 확인합니다.
메시지를 보낸 대화가 수신자의 대화와 일치하는지 확인합니다.
그룹 메시지
메시지가 성공적으로 발송되었는지 확인합니다.
수신자가 성공적으로 로그인했는지 확인합니다.
수신자가 그룹 구성원인지 확인합니다.
C2C 메시지 또는 그룹 메시지 모두 상기 방법으로 문제를 확인할 수 없는 경우, 다음 내용을 확인하십시오.
1. 메시지 리스너가 등록되었는지 확인합니다.
2. 발신자가 메시지를 보낼 때 메시지에 ‘elem’을 추가했는지 확인합니다(메시지를 보낼 때 ‘addElement’의 반환 값 확인).
3. Android 사용자의 경우 여러 메시지 리스너 등록 여부 및 메시지 리스너에 ‘true’ 반환 여부를 확인합니다.
오프라인 푸시 수신 실패 시 어떻게 해야 합니까?
APNs
Offline Push (iOS) 설명 문서를 참고하여 다음을 확인합니다.
Tencent Cloud 콘솔에 올바른 인증서가 업로드되었는지 확인합니다.
로그인 성공 후 token이 Tencent Cloud에 성공적으로 업로드되었는지 확인합니다.
token을 리포트 시 올바른 인증서 ID가 리포트되는지 확인합니다.
포그라운드/백그라운드 전환 이벤트가 올바르게 리포트되는지 확인합니다.
메시지에 ‘TIMCustomElem’만 포함되어 있고 ‘desc’ 속성은 비어 있지 않은지 확인합니다.
‘MsgRandom’과 같은 중복 제거 식별자가 동일한 값으로 설정되어 중복 제거로 인한 푸시 실패가 발생하지 않았는지 확인합니다.
그룹 메시지의 경우 메시지 알림 음소거가 활성화되어있는지 확인합니다.
Android
Offline Push Configuration 설명 문서를 참고하여 다음을 확인합니다.
올바른 푸시 인증서가 업로드되었는지 확인합니다.
token이 성공적으로 리포트되었는지 확인합니다.
서드 파티 오프라인 푸시(Huawei, Xiaomi, Meizu)를 사용하지 않은 경우, QALService 프로세스가 활성화 상태인지 확인하십시오. 프로세스가 활성화되어 있지 않으면 오프라인 푸시를 수신할 수 없습니다. 이 경우 시스템의 자동 시작 권한이 필요합니다.
다중 프로세스의 경우 IM SDK 초기화가 메인 프로세스에서만 수행되었는지 확인하십시오. 그렇지 않은 경우, IM SDK 초기화가 메인 프로세스에서만 수행되도록 구성을 수정해야 합니다.
서드 파티 오프라인 푸시(Xiaomi, Huawei, Meizu 등)를 사용할 때 먼저 해당 서드 파티 콘솔을 통해 메시지를 직접 푸시하여 휴대폰의 메시지 수신 가능 여부를 확인할 수 있습니다. 휴대폰이 수신할 수 없는 경우, 가능한 원인은 다음 2가지가 있습니다.
1.1 사용자의 서드 파티 오프라인 푸시 통합 오류. 이 경우 관련 문서를 참고하십시오.
1.2 휴대폰 오프라인 푸시 호환성 문제. 예를 들어, 일부 Huawei 휴대폰은 Huawei의 오프라인 푸시를 수신할 수 없습니다.
OPPO 오프라인 푸시의 경우, IM 콘솔의 Android 푸시 인증서에 AppSecret 대신 MasterSecret을 입력해야 합니다.
APNs 푸시 또는 Android 오프라인 푸시를 사용할 때, 상기 방법을 통해 문제를 찾을 수 없는 경우, 다음의 경우를 확인하십시오.
1. 받는 사람 ID가 메시지 푸시 대상자 ID와 일치하는지 확인합니다.
2. 오프라인 푸시 리스너(Android)를 활성화했는지 확인합니다.
3. 방해 금지를 설정했는지 확인합니다. iOS는 사용자 정의 푸시 알림음 설정을, Android는 전역 오프라인 푸시 구성 설정을 참고하시기 바랍니다.
4. 메시지가 ‘sendOnlineMessage’ API를 통해 전송된 온라인 메시지인지, 또는 REST API를 통해 푸시할 때 ‘MsgLifeTime’이 ‘0’으로 설정되었는지 확인합니다.
5. 메시지에 오프라인 푸시 하지 않음 식별자가 설정되었는지 확인합니다. iOS는 사용자 정의 오프라인 메시지 속성을, Android는 단일 메시지의 오프라인 푸시 구성 설정을 참고하시기 바랍니다.
6. 여전히 문제를 진단할 수 없으면, 기술 지원 담당자에게 관련 정보를 제공하여 해결할 수 있습니다.
홍바오 메시지는 어떻게 처리됩니까?
홍바오 메시지는 @ 메시지와 유사하며 ‘TIMCustomElem’을 통해 구현할 수 있습니다. 홍바오 메시지는 앱이 UI에서 특수 처리를 수행해야 합니다. 예를 들어, 시스템이 현재 메시지가 홍바오 메시지임을 감지하면 메시지는 홍바오 형태로 표시됩니다.
또한, 홍바오 메시지는 중요한 메시지이므로, 홍바오 메시지 우선 순위를 높게 설정하는 것이 좋습니다. 우선 순위를 높게 설정하면, 홍바오 메시지가 메시지 빈도 제한에 걸리더라도 전달될 가능성이 높아집니다(기본 빈도 제한: 그룹 메시지 40개/초, 1:1 메시지: 5개/초).
주의:
홍바오 메시지의 결제 기능을 사용하려면, 해당 결제 SDK를 수동으로 통합해야 합니다. 현재 IM SDK는 이 결제 기능을 제공하지 않습니다.
간단하게 홍바오 메시지를 구성하는 과정은 다음과 같습니다(Android).
// 새 메시지 생성TIMMessage msg = new TIMMessage();try{// 사용자 정의 메시지 프로토콜 지정JSONObject redPacket= new JSONObject();redPacket.put(“type”, “RED_PACKET”);redPacket.put(“amount”, 2018);redPacket.put(“msg”, “Happy new year!”);// 사용자 정의 프로토콜을 기반으로 사용자 정의 메시지 요소 구성TIMCustomElem customElem = new TIMCustomElem();customElem.setDesc(“red packet”);customElem.setData(redPacket.toString().getBytes(“utf-8”);if(msg.addElement(customElem) != 0){Log.e(TAG, “add custom elem failed”);return;}}catch(Exception e){Log.e(TAG, “build custom elem failed”);return;}// 메시지 우선순위를 높음으로 설정msg.setPriority(TIMMessagePriority.High);
IM 메시지의 저장 기간은 어떻게 됩니까?
1:1 메시지 및 라이브 방송 그룹 외 기타 그룹 메시지는 메시지 기록 저장 기능을 지원합니다.IM 콘솔 에 로그인하여 관련 설정을 수정할 수 있습니다. 패키지별 기본 구성은 다음과 같습니다.
체험판: 7일, 연장 불가능
프로 에디션: 7일, 연장 가능
플래그십 에디션: 30일, 연장 가능
발신자가 블록리스트에 포함되었는데 왜 계속 메시지에 발송 성공이라고 표시되나요?
IM 콘솔의 블록리스트 확인에서 메시지 발송 후 발송 성공 표시 기능을 제공합니다. 해당 기능을 활성화하면 블록리스트에 포함된 사용자가 메시지를 발송한 후에도 발송 성공이 표시됩니다(실제로 상대방은 메시지를 수신하지 않음). 해당 설정을 비활성화하면 블록리스트에 추가된 사용자는 메시지 발송 후 실패 알람을 받으며 SDK는 에러 코드 20007를 수신합니다. 자세한 설정은 블록리스트 확인 문서를 참고하십시오.
COS를 사용하여 이미지 주소를 다운로드 가능한 도메인 형식으로 변경하는 방법은 무엇입니까?
IM 메시지의 고유 식별 규칙은 무엇입니까?
IM 클라이언트 1:1 채팅/그룹 채팅 메시지, Web 1:1 채팅/그룹 채팅 메시지 및 서버 1:1 채팅 메시지 고유 식별자는 각각 msg_id, msgID 및 msgKey에 해당합니다.
각 서로 다른 유형의 메시지를 고유하게 식별하는 규칙은 서로 다르며 구체적인 규칙은 다음과 같습니다.
클라이언트 1:1 채팅/그룹 채팅 메시지의 msg_id 구성은 tinyid-clientTime-random입니다.
Web 1:1 채팅/그룹 채팅 메시지의 msgID 구성은 (v2.17.0 이하): 세션 id-msgSeq-random-1(내가 보낸 메시지) / 0(내가 보내지 않은 메시지)입니다.
Web 1:1 채팅/그룹 채팅 메시지의 msgID 구성은 (v2.18.0 이상): tinyid-clientTime-random입니다.
서버 1:1 채팅 메시지 msgKey의 구성은 clientSeq_random_serverTime입니다.
서버 그룹 채팅 메시지는 그룹 id + msgSeq로 고유하게 식별됩니다.
라이브 그룹과 커뮤니티는 @ 메시지를 지원합니까?
라이브 그룹(AVChatRoom)은 @ 메시지 보내기를 지원하지 않으며 커뮤니티(Community)는 @ 단일 사용자를 지원하며 @ALL을 지원하지 않습니다.