IMとTPNSは同時に統合され、多くのベンダーが競合していますが、この問題を解決するにはどうすればよいですか?
メッセージが受信されないか、または失われた場合はどうすればよいですか?
メッセージの送信が完了しているかどうかを確認します。
受信者がログインを完了しているかどうかを確認します。
メッセージを送信した指定セッションが受信者と同じかどうかを確認します。
グループメッセージ
メッセージの送信が完了しているかどうかを確認します。
受信者がログインを完了しているかどうかを確認します。
受信者がグループメンバーであるかどうかを確認します。
C2Cメッセージかグループメッセージかを問わず、上記の手順で問題を確認できない場合は、引き続き次の状況を確認する必要があります。
1. メッセージリスナーを登録したかどうかを確認します。
2. 送信者がメッセージを送信した際に、elem
をメッセージに追加したかどうかを確認します(メッセージを送信する際にaddElement
の戻り値を確認してください)。
3. Androidでは、複数のメッセージリスナーを登録したかどうか、また、メッセージリスナーでtrue
が返されたかどうかを確認してください。
オフラインプッシュを受信できない場合はどうすればよいですか?
証明書がTencent Cloudコンソールに正しくアップロードされているかどうかを確認します。
ログインに成功した後、tokenのTencent Cloudへのアップロードが成功したかどうかを確認します。
tokenの報告時に正しい証明書IDが報告されているかどうかを確認します。
フロントエンドイベントとバックエンドイベントが正しく報告されているかどうかを確認します。
メッセージにTIMCustomElem
のみがあり、そのうちの desc
属性がブランクであるかどうかを確認します。
MsgRandom
など、重複排除フラグが同じに設定されているため、重複排除が発生し、プッシュできません。
グループメッセージの場合、メッセージを通知しないオプションが設定されているかどうか。
プッシュ証明書が正しくアップロードされているかどうかを確認します。
tokenが正常に報告されているかどうかを確認します。
サードパーティのオフラインプッシュ(Huawei、Xiaomi、Meizu)でない場合は、QALServiceプロセスが存在しているかどうかを確認します。存在していない場合、オフラインプッシュは受信されないため、システムの自動起動権限に依存する必要があります。
複数のプロセスの場合、IM SDKはメインプロセスでのみ初期化されているかどうか。正気化されていない場合は、メインプロセスでのみ初期化するように変更する必要があります。
Xiaomi、Huawei、Meizuといったサードパーティのオフラインプッシュの場合は、まず対応するサードパーティのコンソールから直接メッセージをプッシュして、電話を受信できるかどうかを確認できます。受信できない場合、次の2つの理由が考えられます:
1)サードパーティのオフラインプッシュを統合するユーザーに問題があります。ドキュメントに従って操作してください。
2)携帯電話の互換性の問題。携帯電話自体はオフラインプッシュと互換性がありません。例えば、一部のHuawei携帯電話は、Huaweiのオフラインプッシュを受信できません。
OPPOによるオフラインプッシュの場合は、IMコンソールのAndroidプッシュ証明書に、AppSecretではなくMasterSecretを入力しているか確認してください。
APNプッシュか、またはAndroidでのオフラインプッシュかどうかに関わらず、上記の手順で問題を確認できない場合は、引き続き以下の状況を確認してください:
1. 受信者IDがプッシュされるメッセージのユーザーIDと一致しているかどうかを確認します。
2. オフラインプッシュリスナー(Android)が設定されているかどうかを確認します。
4. メッセージがsendOnlineMessage
インターフェースを介して送信されたオンラインメッセージであるかどうかを確認するか、RESTAPIを介してプッシュするときにMsgLifeTime
を0
に設定します。
6. それでも場所を特定できない場合は、技術者に関連情報を提供し、トラブルシューティングを行うことができます。
Red Packetメッセージはどのように処理すればよいですか?
Red Packetメッセージは、@メッセージと似通っており、 TIMCustomElem
を介して実装できます。UI上で対応する特殊処理を適用する必要があります。例えば、現在のメッセージがRed Packetメッセージであることを確認した場合、メッセージはRed Packetの形式で表示されます。
また、Red Packetメッセージは重要なメッセージです。頻度制限に達してもメッセージを配信できるように、メッセージを送信するときに優先度の高いメッセージとして設定することをお勧めします(現在、グループ内のメッセージのデフォルトの頻度制限は40件/秒であり、シングルチャットメッセージのデフォルトの頻度制限は5件/秒です)。
ご注意:
Red Packetメッセージの支払部分の機能では、アプリケーションが対応する支払SDKを統合する必要があります。現時点でIM SDKは、この部分の機能を提供していません。
Red Packetメッセージの簡単な作成プロセスは次のとおりです(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メッセージの保存期間はどのくらいですか?
シングルチャットメッセージと非ライブストリーミンググループメッセージには、メッセージ履歴の保存機能があります。IMコンソールにログインして、関連の設定を変更することができます。それぞれのパッケージのデフォルト設定は次のとおりです。 体験版:7日間。延長機能はサポートしていません。
プロフェッショナル版:7日間。延長機能をサポートしています。
フラッグシップ版:30日間。延長機能をサポートしています。
履歴メッセージの保存期間の延長は、有料の付加価値サービスです。料金の詳細については、付加価値サービスの料金をご参照ください。 送信者がブラックリストに登録されているのに、メッセージの送信が成功したと表示されるのはなぜですか?
IMは、コンソールのブラックリストチェック管理において、メッセージ送信後に成功した送信を表示する機能を提供します。この機能を有効にすると、ブラックリストに登録されたユーザーがメッセージを送信した後も、送信が成功したことが表示されます(実際には相手はメッセージを受信しません)。この設定を無効にすると、ブラックリストに登録されたユーザーはメッセージの送信後に「失敗」と表示され、SDKはエラーコード20007を受信します。具体的な設定については、ドキュメントブラックリストチェックをご参照ください。 COSを介した画像アドレスをダウンロード可能なドメイン名形式への変更方法は?
ユーザー自身がアップロードを処理してください。ストレージサービスのプライベート読み取りを使用する場合は、ダウンロード権限が有ることを保証するために、URL署名が必要です(事前署名によるダウンロード)。 IMのメッセージの固有フラグのルールは何ですか?
IMクライアントのシングルチャット/グループチャットメッセージ、Web側のシングルチャット/グループチャットメッセージ、およびサーバー側のシングルチャットメッセージの固有フラグは、それぞれmsg_id、msgID、およびmsgKeyに対応します。
それぞれの異なるタイプのメッセージの固有フラグのルールは異なります。具体的なルールは次のとおりです:
クライアントのシングルチャット/グループチャットメッセージmsg_idの構成は、tinyid-clientTime-randomです。
Web側のシングルチャット/グループチャットメッセージmsgIDの構成は、(v2.17.0よりも前)セッションid-msgSeq-random-1(自分が送信したメッセージ)/0(自分が送信していないメッセージ)です。
Web側のシングルチャット/グループチャットメッセージmsgIDの構成は、(v2.18.0以降)tinyid-clientTime-randomです。
サーバー側のシングルチャットメッセージmsgKeyの構成は、clientSeq_random_serverTimeです。
サーバー側のグループチャットメッセージは、グループid+msgSeqにより一意的に識別されます。
ライブブロードキャストグループとコミュニティは、@メッセージをサポートしますか?
ライブブロードキャストグループ(AVChatRoom)は、@メッセージの送信をサポートしません。コミュニティ(Community)は、単一ユーザーへの@メッセージをサポートしますが、@ALLをサポートしません。
この記事はお役に立ちましたか?