Este ejemplo muestra cómo utilizar las funciones de Skype en su sitio web ASP.NET 2.0. Según el nombre de usuario de Skype y el número de teléfono estándar, escriba en los campos correspondientes. Seis LinkButtons contienen las cadenas que Skype necesita en un sitio web para realizar las acciones básicas, que son:
Realizar una llamada de Skype a través de Skype.
Solicitar información de contacto.
Iniciar un chat.
Enviar un archivo a través de Skype.
Añade un contacto.
Realizar una llamada por Skype.
Creando esta muestra
Comencé este ejemplo creando un nuevo sitio web vacío, seleccioné la opción Agregar nuevo elemento en el sitio web y seleccioné un nuevo WebUserControl para agregar a mi aplicación al que llamé SkypeSample (obtiene la extensión .ascx después de la creación). En este WebsUserControl, creé los siguientes controles:
Una etiqueta con la propiedad Texto Nombre de Skype
Una etiqueta con la propiedad Texto Número de teléfono
Un TextBox con el ID txtSkypeName
Un TextBox con el ID txtPhoneNr
Un botón llamado Botón1 de forma predeterminada, con la propiedad Texto establecida en Rellenar
Seis LinkButtons llamados, por defecto, Linkbutton1...
Seis imágenes de tipo estándar llamadas, por defecto, Imagen1...
Además, agregué una carpeta Imágenes al proyecto y descargué un conjunto de imágenes que los desarrolladores pueden usar desde el sitio web de Skype (haga clic aquí para descargar las imágenes), elegí los botones que necesitaba y los agregué al mapa de imágenes creado. Configuré la ruta de mis controles Imagen1 a Imagen6 en la imagen apropiada en mi carpeta Imágenes.
Para Button1, creé un evento llamado Populate_Click y el siguiente código que activará el método SetSkypeStatus que creé más adelante.
//Obtener estado de Spype
intentar
{
this.SetSkype();
}
atrapar
{
//
}
finalmente
{
//
}
Luego hice clic en UserControl para ir al código subyacente y creé un método llamado SetSkype y las cadenas necesarias para la aplicación.
vacío protegido SetSkype()
{
//Configurar las imágenes del sitio web como invisibles
Imagen1.Visible = verdadero;
Imagen2.Visible = verdadero;
Imagen3.Visible = verdadero;
Imagen4.Visible = verdadero;
Imagen5.Visible = verdadero;
Imagen6.Visible = verdadero;
//Crea las cadenas que contendrán
//los valores y acciones necesarios
string SkypeName = txtSkypeName.Text;
cadena LandPhone = txtPhoneNr.Text;
cadena PathSkypeStatusString = "";
cadena SkypeAddContactString = "";
cadena SkypeCallString = "";
cadena SkypeLandCall = "";
cadena SkypeChattString = "";
cadena SkypeProfileString = "";
cadena SkypeSendFileString = "";
Para completar las cadenas con valores, creé bloques de prueba. El primer bloque obtiene el estado del nombre de usuario de Skype que se escribe después de activar el método. Como puede ver en el código siguiente, creé tres cadenas (s1, s2, sT); el último de los tres en el primer bloque de intento representa el total de la cadena desde que intenté crear una cadena que puedo usar para obtener el estado del contacto de Skype. Como puede ver a continuación, la primera parte de la cadena es una URL que dice dónde buscar y qué ícono usar. Puede cambiar la palabra "mediumicon" por, por ejemplo, "largeicon" y se mostrará un icono grande. La parte cadena sT= en este bloque establece el valor real de la cadena sT en la cadena que quiero, la ruta a buscar más el nombre de usuario de Skype cuyo estado quiero. El valor que tiene sT se pasa al PathSkypeStatusString creado anteriormente; y asigno PathSkypeStatusString como el valor de la URL de Imagen1, por lo que en tiempo de ejecución, esta imagen debería mostrar un icono mediano con el estado actual del usuario.
//Obtener estado de Spype
intentar
{
cadena s1 = " http://mystatus.skype.com/mediumicon/ ";
cadena s2 = Nombre de Skype;
cadena sT = s1 + s2;
PathSkypeStatusString = st;
Imagen1.ImageUrl = PathSkypeStatusString;
}
atrapar
{
//
}
finalmente
{
//
}
En la siguiente parte, necesito más cadenas porque el nombre de usuario de Skype estará en el medio de la cadena, por lo que crear la cadena completa es un poco más complicado. s4 es importante en esta parte porque esa es la acción que se realizará en tiempo de ejecución y s6 en el texto que será visible en el LinkButton. Nuevamente, creo la cadena sT, paso el valor a SkypeCallString y establezco el valor de LinkButton1 en el contenido de SkypeCallString, de modo que en tiempo de ejecución, este Linkbutton iniciará la llamada cuando se haga clic. En el código, el valor HREF se ve sin etiqueta de cierre porque esa se agrega más tarde cuando configuro el valor de la cadena s6.
//Establecer cadena de llamada
intentar
{
//cadena s1 = "ver código";
cadena s2 = "skype:";
cadena s3 = Nombre de Skype;
cadena s4 = "?llamar";
cadena s5 = '"'.ToString();
cadena s6 = ">Skype Me";
cadena sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = st;
LinkButton1.Text = SkypeCallString;
}
atrapar
{
//Hacer
}
finalmente
{
//Hacer
}
Repito esto para todas las acciones que puede realizar el usuario, configurando los valores de los LinkButtons a las acciones que quiero que realice. Está claro por qué las diferentes acciones siempre se ven como ?llamar, ?chatear, etc.
Ejecutando el código de muestra
Para ejecutar el código de muestra, simplemente abra la carpeta SkypeSample con Visual Studio, en la opción de menú Archivo, Abrir y seleccione el sitio web. El código debería cargarse y, cuando presione F5, debería ejecutarse la aplicación de muestra.
Uso adicional
Este ejemplo es fácil de usar dinámicamente cuando almacena el nombre de usuario y el número de teléfono de Skype en una base de datos y presenta estos valores en su sitio web, con, por ejemplo, un DetailControl que carga con una fuente de datos. Cuando configura el nombre de usuario y el número de teléfono de Skype como DataKeys para DetailControl, puede usar los valores que contienen en tiempo de ejecución para completar las cadenas (nombre de usuario y número de teléfono de Skype). A continuación se muestra un ejemplo que muestra cómo puede configurar las propiedades desde Skype.
//Establece los valores de cadena SkypeName y SkypeLandCall dinámicamente
intentar
{
//Establecer cadena Nombre de Skype
cadena SkypeName = DetallesView1.DataKey["Skype"].ToString();
//Establecer cadena SkypeLandCall
cadena SkypeLandCall = DetallesView1.DataKey["CompanyPhone"].ToString();
}
atrapar
{
//Hacer
}
finalmente
{
//Hacer
}
Puntos de interés
No digo que el código sea perfecto pero funciona bien desde mi computadora portátil. Cuando solicito el sitio web desde mi servidor local, todas las opciones de Skype funcionan. El nombre Skype es propiedad intelectual de Skype Limited.