方法: メンバーの追加または削除
ユーザー自身がメンバーの追加や削除を行って Messenger のメンバー リストを更新できる機能を実装することができます。このためには、アプリケーションで以下のことを行う必要があります。
- 現在のユーザーの ContactCollection インスタンスを取得します。
- AddContactCompletedEventHandler にサブスクライブします。
- メンバー リストにメンバーを追加する関数を作成します (この例では、
addContact()
という名前です)。 - メンバー リストからメンバーを削除する関数を作成します (この例では、
removeContact()
という名前です)。 - AddContactCompletedEventHandler が発生した場合に実行するイベント ハンドラを追加します (この例では、
addContactCompleted()
という名前です)。
注意
addContact が呼び出されると、メンバー リストに追加するメンバーのアドレスに招待が送られます。受信者は、招待を承諾または辞退することができます。受信者が承諾すると、メンバー リストにメンバーが追加されます。受信者が招待を辞退した場合、それ以上の処理は行われません。
手順
現在のユーザーの ContactCollection インスタンスを取得するには
現在のユーザーの get_contacts アクセサ関数を使用します。
HelloWorld.App._contactCollection = HelloWorld.App._user.get_contacts();
AddContactCompletedEventHandler にサブスクライブするには
現在のユーザーの add_addContactCompleted アクセサ関数を呼び出します。
HelloWorld.App._user.add_addContactCompleted(Delegate.create(null, HelloWorld.App.addContactCompleted));
メンバー リストにメンバーを追加するには
現在のユーザーの addContact を呼び出します。
var address = "someone@example.com"; HelloWorld.App._user.addContact(address, '招待メッセージです。', null);
メンバー リストからメンバーを削除するには
アドレスの文字列を使用してメンバーを特定します。
var address = "someone@example.com"; var contact = HelloWorld.App._contactCollection.find(address, Microsoft.Live.Messenger.IMAddressType.windowsLive);
現在のユーザーの ContactCollection インスタンスの removeContact を呼び出します。
HelloWorld.App._contactCollection.remove(contact);
例
説明
この例では、メンバーを管理するための基本的なコードを示します。ユーザーのサインインが有効であるとします。
コード
// 現在のユーザーの ContactCollection を取得します。
HelloWorld.App._contactCollection = HelloWorld.App._user.get_contacts();
// AddContactCompleted にサブスクライブします。
HelloWorld.App._user.add_addContactCompleted(Delegate.create(null, HelloWorld.App.addContactCompleted));
// メンバー リストに新しいメンバーを追加します。
public static void AddContact()
{
InputElement txtContact = (InputElement)Document.GetElementById("txtContact");
string address = txtContact.Value;
if (user != null)
user.AddContact(address, "招待メッセージです。", null);
}
// メンバー リストから既存のメンバーを削除します。
public static void RemoveContact(string address)
{
if (user.Presence.Status != PresenceStatus.Offline)
{
Contact contact = contactCollection.Find(address, IMAddressType.WindowsLive);
if (Script.Confirm("削除してもよろしいですか?")== true)
{
contactCollection.Remove(contact);
DisplayContacts();
}
}
}
// 新しいメンバーが追加されたらメンバー リストを更新します。
public static void AddContactCompleted(Object sender, Microsoft.Live.Messenger.AddContactCompletedEventArgs e)
{
DisplayContacts();
}
関連項目
概念
その他のリソース
メンバーの操作