リレーションシップチェーン管理
リレーションシップチェーンシステムの説明
IMは、ユーザーリレーションシップチェーンのホスティング機能をオープン化し、リレーションシップチェーンに関連する一まとまりのソリューションを提供しています。App内のユーザー間のフレンドシップの構築または維持を希望しない場合やフレンドの追加や削除など一連の機能を手軽に実行したい場合は、IMのリレーションシップチェーンのホスティングサービスを選択することができます。
IMは、リレーションシップチェーンの保存機能を提供し、お客様のデータのリモート障害復旧、マルチサイトデプロイおよび自動スケーリングといった機能を確保します。サーバーのダウンタイム、マルチマスター/スレーブレプリケーション、スケーリングなどの処理をお手伝いし、お客様は複雑な処理フローから完全に解放されます。
IMは、業界共通の業務処理フローを提供し、お客様がユーザーリレーションシップチェーンのロジックから完全に解放されるようお手伝いします。
IMは、プロフェッショナルな運営フローと運営チームを提供し、年間を通じて99.99%という安定したサービス品質をお約束し、ユーザーに評判の高い安定したサービスを提供するお手伝いをします。
IMは、使いやすいサービスインターフェースとクイックアクセスヘルプガイドを提供し、プロセス全体で優れたサービスを提供します。
リレーションシップチェーンとは、ユーザーと他のユーザーとの関係性を説明するために用いられるデータのグループです。IMが現在サポートしているリレーションシップチェーンには、フレンドリストとブラックリストがあります。
リレーションシップチェーンフィールド
IMリレーションシップチェーンシステムは、標準リレーションシップチェーンフィールドとカスタムリレーションシップチェーンフィールドをサポートしています。リレーションシップチェーンフィールドには、次のような特性があります。
リレーションシップチェーンフィールドは、Key-Valueの形式で表されます。
KeyはString型、命名にはアルファベット大文字・小文字、数字、アンダーバーのみサポートしています。
Valueには次のタイプがあります。
a. uint64_t型の整数(カスタムリレーションシップチェーンフィールドではサポートしていません)。
b. string型の文字列(stringの長さは500バイトを超えてはなりません)。
c. bytes型のbuffer(bufferの長さは500バイトを超えてはなりません)。
d. string型の文字列配列(各stringの長さは500バイトを超えてはならず、フレンドリストのTag_SNS_IM_Groupフィールドでのみ使用されます)。
フレンドリスト
IMのフレンドリストには、最大3,000人のフレンドを追加できます。
フレンドリストは、標準フレンドフィールドとカスタムフレンドフィールドをサポートしています。
標準フレンドフィールド
現在、IMでサポートされている標準フレンドフィールドは次のとおりです。
フィールド名 | タイプ | 説明 |
Tag_SNS_IM_Group | Array | フレンドグループ: 1. 最大32のグループをサポートします。 2. グループ名をブランクにすることはできません。 3. グループ名の長さは30バイトを超えてはなりません。 4. 同じフレンドが異なる複数のグループを保有することができます |
Tag_SNS_IM_Remark | string | フレンドノート: コメントの最大長は96バイトを超えてはなりません |
Tag_SNS_IM_AddSource | string | フレンドソースの追加: 1. フレンドソースフィールドの追加には、プレフィックスとキーワードの2つの部分があります。 2. フレンドソースフィールドの追加のプレフィックスは次のとおりです。AddSource_Type_ ; 3. キーワード:アルファベットとし、長さが8バイトを超えてはなりません。英単語または英単語の省略形を使用することをお勧めします。 4. 例:フレンドソースのキーワードがAndroidの場合、フレンドソースフィールドは、AddSource_Type_Androidです<br /> |
Tag_SNS_IM_AddWording | string | フレンドの追伸の追加: フレンドの追伸の長さは256バイトを超えてはなりません |
Tag_SNS_IM_AddTime | Integer | 友達のタイムスタンプを追加 |
カスタムフレンドフィールド
カスタムフレンドフィールドは、各Appによって各自の業務ニーズに応じて設定されたフレンドデータです。フレンドフィールドをカスタマイズすることで、各Appはフレンドにデータを追加することができ、また、既存インターフェースを介して、読み取りおよび書き込み操作を行うことができます。
App管理者は、IMコンソール >アプリケーションの設定>機能設定から、カスタムフレンドフィールドを申請することができます。申請すると、カスタムフレンドフィールドは5分以内に有効になります。
カスタムフレンドフィールドの命名規則は次のとおりです。
カスタムフレンドフィールドの名称は、プレフィックスとキーワードという2つの部分に分かれます。
カスタムフレンドフィールドのプレフィックスは、Tag_SNS_Customです。
キーワード:必ずアルファベットとし、長さは8バイトを超えてはなりません。英単語または英単語の省略形を使用することをお勧めします。
例:特定のAppが申請するカスタムフレンドフィールドのキーワードがTestの場合、カスタムリレーションシップフィールドの名称は、Tag_SNS_Custom_Testとなります。
カスタムフレンドフィールドを申請するときは、カスタムフレンドフィールドごとに次の情報を送信する必要があります。
カスタムフレンドフィールドの名称(Key)。
カスタムフレンドフィールドのタイプ(Value):詳細についてはリレーションシップチェーンフィールドをご参照ください。
フレンドの追加
双方向のフレンド:ユーザーAのフレンドリストにユーザーBがいて、BのフレンドリストにもAがいます。
一方向のフレンド:ユーザーAのフレンドリストにはユーザーBがいますが、BのフレンドリストにはAがいません。
フレンド追加検証方法:各ユーザーは、他のユーザーからフレンドとして追加される方法を選択することができます。詳細については、標準プロファイルフィールドにおけるフレンド追加検証方法フィールドをご参照ください。
フレンドの1ターン追加:アカウントAに設定されたフレンド追加検証方法がAllowType_Type_AllowAnyである場合、Aをフレンドとして追加する人は誰でも、そのまま追加が成功します。このように、1回のリクエストでフレンドの追加に成功するシナリオをフレンドの1ターン追加と呼びます。
フレンドの2ターン追加:アカウントAに設定されたフレンド追加検証方法がAllowType_Type_NeedConfirmである場合、誰かがAをフレンドとして追加すると、Aはフレンド追加検証をリクエストするメッセージを受け取ります。これが1回目のターンで、次にAは、このフレンド追加検証をリクエストするメッセージに同意する旨の操作を行います。これが2回目のターンです。このように、検証が必要なフレンド追加シナリオをフレンドの2ターン追加と呼びます。
フレンドの削除
IMは、一方向のフレンド削除と双方向のフレンド削除といった2つのフレンド削除モードをサポートしています。
削除モード | DeleteType | 説明 |
一方向のフレンド削除 | Delete_Type_Single | From_AccountのフレンドリストからTo_Accountのみが削除されますが、From_AccountはTo_Accountのフレンドリストから削除されません |
双方向のフレンド削除 | Delete_Type_Both | From_AccountのフレンドリストからTo_Accountが削除されると同時に、From_AccountもTo_Accountのフレンドリストから削除されます |
フレンドのプル
フレンドのチェック
IMは、一方向のフレンドシップチェック、双方向のフレンドシップチェックという、2つのフレンドチェックモードをサポートしています。
チェックモード | CheckType | 説明 |
一方向のフレンドシップチェック | CheckResult_Type_Single | From_AccountのフレンドリストにTo_Accountがあるかどうかのみをチェックし、To_AccountのフレンドリストにFrom_Accountがあるかどうかはチェックしません |
双方向のフレンドシップチェック | CheckResult_Type_Both | From_AccountのフレンドリストにTo_Accountがあるかどうか、およびTo_AccountのフレンドリストにFrom_Accountがあるかどうかチェックします |
一方向のフレンドシップチェックを行った際に予想される結果は次のとおりです。
Relation | 説明 |
CheckResult_Type_NoRelation | From_AccountのフレンドリストにはTo_Accountはありませんが、To_AccountのフレンドリストにFrom_Accountがあるかどうかは確定できません |
CheckResult_Type_AWithB | From_AccountのフレンドリストにはTo_Accountがありますが、To_AccountのフレンドリストにFrom_Accountがあるかどうかは確定できません |
双方向のフレンドシップチェックを行った際に予想される結果は次のとおりです。
Relation | 説明 |
CheckResult_Type_BothWay | From_AccountのフレンドリストにはTo_Accountがあり、To_AccountのフレンドリストにもFrom_Accountがあります |
CheckResult_Type_AWithB | From_AccountのフレンドリストにはTo_Accountはありますが、To_AccountのフレンドリストにFrom_Accountはありません |
CheckResult_Type_BWithA | From_AccountのフレンドリストにTo_Accountはありませんが、To_AccountのフレンドリストにはFrom_Accountがあります |
CheckResult_Type_NoRelation | From_AccountのフレンドリストにTo_Accountはなく、To_AccountのフレンドリストにもFrom_Accountはありません |
ブラックリスト
各ユーザーには、ユーザーによってブロックされたアカウントを保存するためのブラックリストがあります。
ユーザーAがユーザーBをブラックリストに追加すると、AとBの間のフレンドシップは解除され(フレンドシップがある場合)、AとBの間ではフレンド追加リクエストを送信できなくなります。
IMのブラックリストには、デフォルトで1000個のブラックリストアカウントを追加できます。ブラックリストは設定をサポートしていません。
ブラックリストの追加
ブラックリストの削除
ブラックリストのプル
ブラックリストのチェック
IMは、一方向のブラックリストリレーションシップチェック、双方向のブラックリストリレーションシップチェックという2つのブラックリストチェックモードをサポートしています。
チェックモード | CheckType | 説明 |
一方向のブラックリストリレーションシップチェック | BlackCheckResult_Type_Single | From_AccountのブラックリストにTo_Accountがあるかどうかのみをチェックし、To_AccountのブラックリストにFrom_Accountがあるかどうかはチェックしません |
双方向のブラックリストリレーションシップチェック | BlackCheckResult_Type_Both | From_AccountのブラックリストにTo_Accountがあるかどうか、およびTo_AccountのブラックリストにFrom_Accountがあるかどうかチェックします |
一方向のブラックリストリレーションシップチェックを行った際に予想される結果は次のとおりです。
Relation | 説明 |
BlackCheckResult_Type_AWithB | From_AccountのブラックリストにはTo_Accountがありますが、To_AccountのブラックリストにFrom_Accountがあるかどうかは確定できません |
BlackCheckResult_Type_NO | From_AccountのブラックリストにTo_Accountはありませんが、To_AccountのブラックリストにFrom_Accountがあるかどうかは確定できません |
双方向のブラックリストリレーションシップチェックを行った際に予想される結果は次のとおりです。
Relation | 説明 |
BlackCheckResult_Type_BothWay | From_AccountのブラックリストにTo_Accountがあり、To_AccountのブラックリストにもFrom_Accountがあります |
BlackCheckResult_Type_AWithB | From_AccountのブラックリストにはTo_Accounttはありますが、To_AccountのブラックリストにFrom_Accountはありません |
BlackCheckResult_Type_BWithA | From_AccountのブラックリストにTo_Accountはありませんが、To_AccountのブラックリストにはFrom_Accountがあります |
BlackCheckResult_Type_NO | From_AccountのブラックリストにTo_Accountはなく、To_AccountのブラックリストにもFrom_Accountはありません |