Cet exemple montre comment utiliser les fonctionnalités Skype dans votre site Web ASP.NET 2.0. En fonction du nom d'utilisateur Skype et du numéro de téléphone standard, vous saisissez les champs appropriés. Six LinkButtons sont remplis avec les chaînes dont Skype a besoin dans un site Web pour effectuer les actions de base, à savoir :
Passer un appel Skype via Skype.
Demander les coordonnées.
Démarrez une discussion.
Envoyez un fichier via Skype.
Ajoutez un contact.
Passez un appel Skype Out.
Création de cet exemple
J'ai commencé cet exemple en créant un nouveau site Web vide, en sélectionnant l'option Ajouter un nouvel élément sous le site Web et en sélectionnant un nouveau WebUserControl à ajouter à mon application que j'ai appelé SkypeSample (il obtient l'extension .ascx après la création). Sur ce WebsUserControl, j'ai créé les contrôles suivants :
Un Label avec la propriété Text Skype Name
Une étiquette avec la propriété Text Phone Nr
Une TextBox avec l'ID txtSkypeName
Une TextBox avec l'ID txtPhoneNr
Un bouton appelé Button1 par défaut, avec la propriété Text définie sur Populate
Six LinkButtons appelés, par défaut, Linkbutton1...
Six images de type standard appelées, par défaut, Image1...
De plus, j'ai ajouté un dossier Images au projet et téléchargé un ensemble d'images que les développeurs peuvent utiliser à partir du site Web de Skype (Cliquez ici pour télécharger les images), j'ai choisi les boutons dont j'avais besoin et je les ai ajoutés à la carte d'images créée. J'ai défini le chemin de mes contrôles Image1 sur Image6 sur l'image appropriée dans mon dossier Images.
Pour Button1, j'ai créé un événement appelé Populate_Click et le code suivant qui déclenchera la méthode SetSkypeStatus que j'ai créée plus tard.
//Obtenir le statut d'espion
essayer
{
this.SetSkype();
}
attraper
{
//
}
enfin
{
//
}
Ensuite, j'ai cliqué sur UserControl pour accéder au code-behind et créé une méthode appelée SetSkype et les chaînes nécessaires à l'application.
vide protégé SetSkype()
{
//Définissez les images du site Web comme invisibles
Image1.Visible = vrai ;
Image2.Visible = vrai ;
Image3.Visible = vrai ;
Image4.Visible = vrai ;
Image5.Visible = vrai ;
Image6.Visible = vrai ;
//Créer les chaînes qui contiendront
//les valeurs et actions nécessaires
string SkypeName = txtSkypeName.Text;
chaîne LandPhone = txtPhoneNr.Text ;
chaîne PathSkypeStatusString = "" ;
chaîne SkypeAddContactString = "" ;
chaîne SkypeCallString = "" ;
chaîne SkypeLandCall = "" ;
chaîne SkypeChattString = "" ;
chaîne SkypeProfileString = "" ;
chaîne SkypeSendFileString = "" ;
Pour remplir les chaînes avec des valeurs, j'ai créé des blocs try. Le premier bloc obtient le statut du nom d'utilisateur Skype saisi après le déclenchement de la méthode. Comme vous pouvez le voir dans le code ci-dessous, j'ai créé trois chaînes (s1, s2, sT) ; le dernier des trois du premier bloc d'essai représente le total de la chaîne puisque j'ai essayé de créer une chaîne que je peux utiliser pour obtenir le statut du contact Skype. Comme vous pouvez le voir ci-dessous, la première partie de la chaîne est une URL qui indique où chercher et quelle icône utiliser. Vous pouvez remplacer le mot « mediumicon » par, par exemple, « largeicon », et une grande icône s'affichera. La partie string sT= de ce bloc définit la valeur réelle de la chaîne sT sur la chaîne que je veux, le chemin à rechercher plus le nom d'utilisateur Skype dont je veux le statut. La valeur sT est ensuite transmise au PathSkypeStatusString créé ci-dessus ; et j'attribue PathSkypeStatusString comme valeur de l'URL Image1, donc au moment de l'exécution, cette image doit afficher une icône moyenne avec l'état actuel de l'utilisateur.
//Obtenir le statut d'espion
essayer
{
chaîne s1 = " http://mystatus.skype.com/mediumicon/ " ;
chaîne s2 = SkypeName ;
chaîne sT = s1 + s2 ;
PathSkypeStatusString = st;
Image1.ImageUrl = PathSkypeStatusString ;
}
attraper
{
//
}
enfin
{
//
}
Dans la partie suivante, j'ai besoin de plus de chaînes car le nom d'utilisateur Skype sera au milieu de la chaîne, donc créer la chaîne complète est un peu plus compliqué. s4 est important dans cette partie car c'est l'action qui sera effectuée au moment de l'exécution, et s6 dans le texte qui sera visible dans le LinkButton. Encore une fois, je crée la chaîne sT, transmets la valeur à SkypeCallString et définit la valeur de LinkButton1 sur le contenu de SkypeCallString, donc au moment de l'exécution, ce Linkbutton lancera l'appel lorsqu'il sera cliqué. Dans le code, la valeur HREF est vue sans balise de fermeture car celle-ci est ajoutée ultérieurement lorsque je définis la valeur de la chaîne s6.
//Définir la chaîne d'appel
essayer
{
//string s1 = "voir le code" ;
chaîne s2 = "skype :" ;
chaîne s3 = SkypeName ;
chaîne s4 = "?appel" ;
chaîne s5 = '"'.ToString();
chaîne s6 = ">Skype-moi" ;
chaîne sT = s1 + s2 + s3 + s4 + s5 + s6 ;
SkypeCallString = st ;
LinkButton1.Text = SkypeCallString ;
}
attraper
{
//Faire
}
enfin
{
//Faire
}
Je répète cela pour toutes les actions qui peuvent être effectuées par l'utilisateur, en définissant les valeurs des LinkButtons sur les actions que je souhaite qu'ils effectuent. Il est clair pourquoi les différentes actions ressemblent toujours à ?call, ?chat etc.
Exécuter l'exemple de code
Pour exécuter l'exemple de code, ouvrez simplement le dossier SkypeSample avec Visual Studio, sous l'option de menu Fichier, Ouvrir, puis sélectionnez le site Web. Le code doit être chargé et lorsque vous appuyez sur F5, l'exemple d'application doit s'exécuter.
Utilisation ultérieure
Cet exemple est facile à utiliser de manière dynamique lorsque vous stockez le nom d'utilisateur et le numéro de téléphone Skype dans une base de données et présentez ces valeurs sur votre site Web, avec, par exemple, un DetailControl que vous chargez avec une source de données. Lorsque vous définissez le nom d'utilisateur et le numéro de téléphone Skype en tant que DataKeys pour DetailControl, vous pouvez utiliser les valeurs qu'ils contiennent au moment de l'exécution pour remplir les chaînes (nom d'utilisateur Skype et numéro de téléphone). Vous trouverez ci-dessous un exemple qui montre comment définir les propriétés à partir de Skype.
//Définit dynamiquement les valeurs des chaînes SkypeName et SkypeLandCall
essayer
{
//Définir la chaîne SkypeName
chaîne SkypeName = DétailsView1.DataKey["Skype"].ToString();
//Définir la chaîne SkypeLandCall
chaîne SkypeLandCall = DétailsView1.DataKey["CompanyPhone"].ToString();
}
attraper
{
//Faire
}
enfin
{
//Faire
}
Points d'intérêt
Je ne dis pas que le code est parfait mais il fonctionne bien depuis mon ordinateur portable. Lorsque je demande le site Web à mon serveur local, toutes les options Skype fonctionnent. Le nom Skype est la propriété de Skype Limited.