トピックの作成
ここでは、スコープごとにトピックの作成方法を説明していきます。
アプリケーションスコープのトピックの作成
アプリケーションスコープのトピックは、アプリ開発者のみ作成できます。作成したトピックは、全てのアプリユーザーから購読できますが、このトピックにメッセージを送信できるのは、デフォルト状態ではトピック作成者(つまりアプリ開発者)だけです。
アプリケーションスコープのトピックは、REST API または Kii Cloud SDK for JavaScript を使って作成します。
REST API を使って作成
以下の手順で作成します。
- 「REST スタートガイド - アプリ管理者向け機能」 の内容に従い、アプリ管理者トークンを取得します。
- 次の例のようにしてアプリケーションスコープのトピックを作成します(この例では "SendingAlert" という名前のトピックを作成しています)。
curl -v -X PUT \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/topics/SendingAlert"
{APP_ID}
には実際の AppID の値を入れます。また、取得したアプリ管理者トークンを {ACCESS_TOKEN}
の箇所に入れてください。
トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。
Kii Cloud SDK for JavaScript を使って作成
Kii Cloud SDK for JavaScript の アプリケーションスコープのトピックの作成 を参照してください。
グループスコープのトピックの作成
グループスコープのトピックは、グループメンバーであれば誰でも作成可能です。また、デフォルト状態ではグループメンバーであれば誰でも購読可能であり、全てのグループメンバーがトピックに対してメッセージを送信できます。
グループスコープのトピックは通常アプリケーションによって動的に作成します。以下に、グループスコープのトピックを作成する例を挙げます。
Swift:
-
// Create a group. let group = KiiGroup(name: "group name") do{ try group.saveSynchronous() } catch let error as NSError { // Handle the error. return } // Create a topic in the group scope. let topicName = "GroupTopic" let topic = group.topic(withName: topicName) do{ // Save the topic to Kii Cloud. try topic.saveSynchronous() } catch let error as NSError { // Handle the error. return }
-
// Create a group. let group = KiiGroup(name: "group name") group.save { (group : KiiGroup?, error : Error?) -> Void in if error != nil { // Handle the error. return } // Create a topic in the group scope. let topicName = "GroupTopic" let topic = group!.topic(withName: topicName) // Save the topic to Kii Cloud. topic.save { (topic , error : Error?) -> Void in if error != nil { // Handle the error. return } } }
Objective-C:
-
NSError *error; // Create a group. KiiGroup *group = [KiiGroup groupWithName:@"group name"]; [group saveSynchronous:&error]; if (error != nil) { // Handle the error. return; } // Create a topic in the group scope. NSString *topicname = @"GroupTopic"; KiiTopic *topic = [group topicWithName:topicname]; // Save the topic to Kii Cloud. [topic saveSynchronous:&error]; if (error != nil) { // Handle the error. return; }
-
// Create a group. KiiGroup *group = [KiiGroup groupWithName:@"group name"]; [group saveWithBlock:^(KiiGroup *group, NSError *error) { if (error != nil) { // Handle the error. return; } // Create a topic in the group scope. NSString *topicname = @"GroupTopic"; KiiTopic *topic = [group topicWithName:topicname]; // Save the topic to Kii Cloud. [topic saveWithBlock:^(KiiTopic *topic, NSError *error) { if (error != nil) { // Handle the error. return; } }]; }];
ここでは、以下の処理を実行しています。
- トピックを作成したいグループインスタンスの
topicWithName:
メソッドを実行し、グループスコープのトピックを作成します。 saveSynchronous:
メソッドを実行し、トピックを Kii Cloud に保存します。
トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。
ユーザースコープのトピックの作成
ユーザースコープのトピックは、ログイン済みのユーザーであれば誰でも作成可能です。このトピックはデフォルト状態ではユーザーに閉じており、トピックの購読およびトピックへのメッセージ送信を行えるのはこのユーザーのみになります。
ユーザースコープのトピックは通常アプリケーションによって動的に作成します。以下に、ユーザースコープのトピックを作成する例を挙げます。
Swift:
-
// Create a topic in the user scope. let user = KiiUser.current()! let topicName = "MyTODO" let topic = user.topic(withName: topicName) do{ // Save the topic to Kii Cloud. try topic.saveSynchronous() } catch let error as NSError { // Handle the error. return }
-
// Create a topic in the user scope. let user = KiiUser.current()! let topicName = "MyTODO" let topic = user.topic(withName: topicName) // Save the topic to Kii Cloud. topic.save { (topic , error : Error?) -> Void in if error != nil { // Handle the error. return } }
Objective-C:
-
NSError *error; // Create a topic in the user scope. KiiUser* user = [KiiUser currentUser]; NSString *topicname = @"MyTODO"; KiiTopic *topic = [user topicWithName:topicname]; // Save the topic to Kii Cloud. [topic saveSynchronous:&error]; if (error != nil) { // Handle the error. return; }
-
// Create a topic in the user scope. KiiUser* user = [KiiUser currentUser]; NSString *topicname = @"MyTODO"; KiiTopic *topic = [user topicWithName:topicname]; // Save the topic to Kii Cloud. [topic saveWithBlock:^(KiiTopic *topic, NSError *error) { if (error != nil) { // Handle the error. return; } }];
ここでは以下の処理を実行しています。
topicWithName:
メソッドを実行し、ログイン中のユーザーに対するユーザースコープのトピックを作成します。saveSynchronous:
メソッドを実行し、トピックを Kii Cloud に保存します。
トピック名は英数字、"-"、"_" から構成される 64 文字までの文字列として指定します。