次の方法で共有


方法: メンバーの追加または削除

ユーザー自身がメンバーの追加や削除を行って 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);
    

メンバー リストからメンバーを削除するには

  1. アドレスの文字列を使用してメンバーを特定します。

    var address = "someone@example.com";
    var contact = HelloWorld.App._contactCollection.find(address, Microsoft.Live.Messenger.IMAddressType.windowsLive);
    
  2. 現在のユーザーの 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();
}

関連項目

概念

Messenger Library タスク

その他のリソース

メンバーの操作