このサンプルは、ASP.NET 2.0 Web サイトで Skype 機能を使用する方法を示します。 Skype ユーザー名と標準の電話番号に基づいて、適切なフィールドに入力します。 6 つの LinkButton には、Skype が基本的なアクションを実行するために Web サイトで必要な文字列が設定されています。
Skype 経由で Skype 通話を行う。
連絡先情報を要求します。
チャットを開始します。
Skype 経由でファイルを送信します。
連絡先を追加します。
Skype Out 通話を発信します。
このサンプルの作成
新しい空の Web サイトを作成することでこのサンプルを開始し、[Web サイトに新しい項目を追加] オプションを選択し、SkypeSample と呼ばれるアプリケーションに追加する新しい WebUserControl を選択しました (作成後に .ascx 拡張子が付けられます)。この WebsUserControl で、次のコントロールを作成しました:
Text プロパティを持つラベル Skype Name
Text プロパティを持つラベル Phone Nr
ID が txtSkypeName の TextBox
ID が txtPhoneNr の TextBox
デフォルトで Button1 という名前のボタン。Text プロパティが Populate に設定されています。
6 つの LinkButton は、デフォルトで Linkbutton1 と呼ばれます...
デフォルトで Image1 と呼ばれる 6 つの標準タイプのイメージ
さらに、プロジェクトにフォルダー「画像」を追加し、開発者が使用できる一連の画像を Skype Web サイト (画像をダウンロードするにはここをクリック) からダウンロードし、必要なボタンを選択して、作成したイメージ マップに追加しました。コントロール Image1 ~ Image6 のパスを、Images フォルダー内の適切な画像に設定します。
Button1 については、Populate_Click というイベントと、後で作成した SetSkypeStatus メソッドを起動する次のコードを作成しました。
//スパイステータスを取得
試す
{
this.SetSkype();
}
キャッチ
{
//
}
ついに
{
//
}
次に、UserControl をクリックして分離コードに移動し、SetSkype というメソッドとアプリケーションに必要な文字列を作成しました。
保護された void SetSkype()
{
//ウェブサイト上の画像を非表示に設定します
Image1.Visible = true;
Image2.Visible = true;
Image3.Visible = true;
画像 4.Visible = true;
画像 5.Visible = true;
画像 6.Visible = true;
//保持する文字列を作成します
//必要な値とアクション
string SkypeName = txtSkypeName.Text;
文字列 LandPhone = txtPhoneNr.Text;
文字列PathSkypeStatusString = "";
文字列SkypeAddContactString = "";
文字列SkypeCallString = "";
文字列SkypeLandCall = "";
文字列SkypeChattString = "";
文字列SkypeProfileString = "";
文字列SkypeSendFileString = "";
文字列に値を入力するために、try ブロックを作成しました。最初のブロックは、メソッドの起動後に入力された Skype ユーザー名のステータスを取得します。以下のコードからわかるように、3 つの文字列 (s1、s2、sT) を作成しました。最初の try ブロックの 3 つのうちの最後の 1 つは、Skype 連絡先のステータスを取得するために使用できる文字列を作成しようとしたため、文字列の合計を表します。以下に示すように、文字列の最初の部分は、参照先と使用するアイコンを示す URL です。たとえば、「mediumicon」という単語を「largeicon」に変更すると、大きなアイコンが表示されます。このブロックの文字列 sT= 部分は、文字列 sT の実際の値を、必要な文字列、参照するパス、およびステータスを知りたい Skype ユーザー名に設定します。 sT が保持する値は、上で作成した PathSkypeStatusString に渡されます。そして、PathSkypeStatusString を Image1 URL の値として割り当てます。これにより、実行時に、この画像にはユーザーの現在のステータスを示す中アイコンが表示されるはずです。
//スパイステータスを取得
試す
{
文字列 s1 = " http://mystatus.skype.com/mediumicon/ ";
文字列 s2 = Skype 名;
文字列 sT = s1 + s2;
パスSkypeStatusString = sT;
Image1.ImageUrl = PathSkypeStatusString;
}
キャッチ
{
//
}
ついに
{
//
}
次の部分では、さらに多くの文字列が必要になります。Skype ユーザー名が文字列の途中にあるため、完全な文字列の作成は少し複雑になります。 s4 は実行時に実行されるアクションであり、s6 は LinkButton に表示されるテキスト内にあるため、この部分では重要です。もう一度、文字列 sT を作成し、値を SkypeCallString に渡し、LinkButton1 の値を SkypeCallString のコンテンツに設定します。これにより、実行時に、この Linkbutton をクリックすると通話が開始されます。コードでは、HREF 値には終了タグがありません。これは、後で文字列 s6 の値を設定するときに終了タグが追加されるためです。
//コールストリングを設定する
試す
{
//文字列 s1 = "コードを参照";
文字列 s2 = "スカイプ:";
文字列 s3 = Skype 名;
文字列 s4 = "?call";
文字列 s5 = '"'.ToString();
文字列 s6 = ">Skype Me";
文字列 sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = sT;
LinkButton1.Text = SkypeCallString;
}
キャッチ
{
//藤堂
}
ついに
{
//藤堂
}
ユーザーが実行できるすべてのアクションに対してこれを繰り返し、実行してもらいたいアクションに LinkButtons の値を設定します。さまざまなアクションが常に ?call、?chat などのように見える理由は明らかです。
サンプル コードを実行する
サンプル コードを実行するには、Visual Studio で SkypeSample フォルダーを開き、メニュー オプション [ファイル]、[開く] で Web サイトを選択するだけです。コードがロードされ、F5 キーを押すとサンプル アプリケーションが実行されるはずです。
さらなる使用
このサンプルは、Skype ユーザー名と電話番号をデータベースに保存し、これらの値を Web サイトに表示するときに、たとえばデータ ソースとともに読み込む DetailControl を使用して動的に使用するのが簡単です。 Skype ユーザー名と電話番号を DetailControl の DataKeys として設定すると、文字列 (Skype ユーザー名と電話番号) を入力するために実行時に保持される値を使用できます。以下は、Skype からプロパティを設定する方法を示すサンプルです。
//SkypeName と SkypeLandCall の文字列値を動的に設定します
試す
{
//文字列SkypeNameを設定します
string SkypeName =DetailsView1.DataKey["Skype"].ToString();
//文字列SkypeLandCallを設定します
string SkypeLandCall =DetailsView1.DataKey["CompanyPhone"].ToString();
}
キャッチ
{
//藤堂
}
ついに
{
//藤堂
}
興味のあるスポット
コードが完璧だと言っているわけではありませんが、私のラップトップからは問題なく動作します。ローカル サーバーから Web サイトをリクエストすると、Skype のすべてのオプションが機能します。 Skype という名前は Skype Limited の著作権です。