メッセージに関する質問
IMとTPNSは同時に統合され、多くのベンダーが競合していますが、この問題を解決するにはどうすればよいですか?
現在、IMは、TPNSが提供するベンダーjarパッケージを使用しています。ドキュメントIMオフラインプッシュ(Android)を参照して、関連する依存パッケージを置き換えることで、この問題を解決できます。
メッセージが受信されないか、または失われた場合はどうすればよいですか?
シングルチャットメッセージ
メッセージの送信が完了しているかどうかを確認します。
受信者がログインを完了しているかどうかを確認します。
メッセージを送信した指定セッションが受信者と同じかどうかを確認します。
グループメッセージ
メッセージの送信が完了しているかどうかを確認します。
受信者がログインを完了しているかどうかを確認します。
受信者がグループメンバーであるかどうかを確認します。
C2Cメッセージかグループメッセージかを問わず、上記の手順で問題を確認できない場合は、引き続き次の状況を確認する必要があります。
1. メッセージリスナーを登録したかどうかを確認します。
2. 送信者がメッセージを送信した際に、
elem
をメッセージに追加したかどうかを確認します(メッセージを送信する際にaddElement
の戻り値を確認してください)。3. Androidでは、複数のメッセージリスナーを登録したかどうか、また、メッセージリスナーで
true
が返されたかどうかを確認してください。オフラインプッシュを受信できない場合はどうすればよいですか?
APNs
オフラインプッシュ(iOS)の説明ドキュメントを参照して、以下を確認してください。
証明書がTencent Cloudコンソールに正しくアップロードされているかどうかを確認します。
ログインに成功した後、tokenのTencent Cloudへのアップロードが成功したかどうかを確認します。
tokenの報告時に正しい証明書IDが報告されているかどうかを確認します。
フロントエンドイベントとバックエンドイベントが正しく報告されているかどうかを確認します。
メッセージに
TIMCustomElem
のみがあり、そのうちの desc
属性がブランクであるかどうかを確認します。MsgRandom
など、重複排除フラグが同じに設定されているため、重複排除が発生し、プッシュできません。グループメッセージの場合、メッセージを通知しないオプションが設定されているかどうか。
Android
オフラインプッシュの説明ドキュメントを参照して、以下を確認してください:
プッシュ証明書が正しくアップロードされているかどうかを確認します。
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)が設定されているかどうかを確認します。
3. iOSについては、プッシュ通知音のカスタム設定を参照し、Androidについては、グローバルオフラインプッシュの設定を参照します。
4. メッセージが
sendOnlineMessage
インターフェースを介して送信されたオンラインメッセージであるかどうかを確認するか、RESTAPIを介してプッシュするときにMsgLifeTime
を0
に設定します。5. メッセージにオフラインプッシュを実行しないフラグが設定されているかどうかを確認します。iOSについては、オフラインメッセージプロパティのカスタマイズを参照し、Androidについては、単一メッセージのオフラインプッシュ構成の設定をご参照ください。
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をサポートしません。
- IMとTPNSは同時に統合され、多くのベンダーが競合していますが、この問題を解決するにはどうすればよいですか?
- メッセージが受信されないか、または失われた場合はどうすればよいですか?
- オフラインプッシュを受信できない場合はどうすればよいですか?
- Red Packetメッセージはどのように処理すればよいですか?
- IMメッセージの保存期間はどのくらいですか?
- 送信者がブラックリストに登録されているのに、メッセージの送信が成功したと表示されるのはなぜですか?
- COSを介した画像アドレスをダウンロード可能なドメイン名形式への変更方法は?
- IMのメッセージの固有フラグのルールは何ですか?
- ライブブロードキャストグループとコミュニティは、@メッセージをサポートしますか?