Compartir a través de


Integración de Yammer en el modelo de complemento de SharePoint

Resumen

El método usado para integrar Yammer con SharePoint es el mismo en el nuevo modelo de complemento de SharePoint que con el código de plena confianza.

Directrices avanzadas

Como regla general, nos gustaría proporcionar las directrices avanzadas siguientes para integrar Yammer con SharePoint.

  • Se puede usar la integración de Yammer en entornos de SharePoint local y Office 365.
  • Puede usar el patrón de aprovisionamiento remoto para crear grupos de Yammer u objetos de Yammer OpenGraph para facilitar las conversaciones al crear nuevos sitios de SharePoint.
  • Puede usar la función de inserción lista para usar para integrar rápida y fácilmente Yammer con SharePoint.
    • Para usar la inserción necesita un contenedor HTML de 400 píxeles o superior en la aplicación.
  • Puede usar los SDK de Yammer y las API de REST para crear una funcionalidad de integración personalizada.

Opciones para integrar Yammer con SharePoint

Hay varias opciones para integrar Yammer con SharePoint

  • Elementos web de Yammer
  • Insertar
    • Fuentes de Grupo, Fuentes de Tema, Mis fuentes y Fuentes de Usuario
    • Fuentes OpenGraph
  • API de Yammer OpenGraph y la API de REST de Yammer con los SDK de Yammer

Elementos web de Yammer

Se incluyen dos elementos web para integrar las conversaciones de Yammer en una página web de SharePoint. Al agregar un elemento web a una página moderna, escriba el término de búsqueda "Yammer" para ver los elementos web disponibles:

Elementos web de Yammer predeterminados incluidos en SharePoint

Cuando haya agregado un elemento web a la página, configúrelo con el panel de propiedades para incluir las conversaciones de Yammer deseadas.

Configuración del elemento web conversación de Yammer

Insertar

En esta opción inserta una fuente de Yammer en una página web de SharePoint.

  • Esta opción se implementa de forma rápida y sencilla.
  • Esta opción le permite controlar aspectos limitados de la fuente y su apariencia.

La inserción tiene el aspecto siguiente en la página de SharePoint:

Página de sitio de grupo de SharePoint estándar con un cuadro de texto que contiene el texto Iniciar una conversación. Debajo del cuadro de texto hay un cuadro de lista que muestra un subproceso de conversación de Yammer.

La siguiente tabla describe cada tipo de fuente de Yammer al que puede obtener acceso con una inserción lista para usar.

Fuente Descripción FeedType Caso de uso
Mi fuente Mis fuentes es donde se entregan las conversaciones para los usuarios de Yammer. MyFeed El área de trabajo o la página principal de Mi Sitio.
Fuente de Usuario Todas las conversaciones publicadas por un usuario específico en Yammer. User Páginas de perfil de usuarios en un directorio del sistema.
Fuente de Tema Una fuente de las conversaciones que se han etiquetado con un tema en Yammer. Topic Una página de evento en una intranet.
Fuente de Grupo Una fuente de conversaciones que se han registrado en un grupo específico. Group Una página de grupo en una intranet.

Si necesita más funciones que las fuentes de Yammer listas para usar, en la tabla anterior puede usar la opción de inserción de OpenGraph. Esta opción le ofrece más control de la fuente. La tabla siguiente ilustra un ejemplo.

Fuente Descripción FeedType Caso de uso
Fuente de comentarios Usa la API de Open Graph de Yammer para facilitar la conversación sobre un objeto de aplicación. Personalizado Una oportunidad en una aplicación personalizada de CRM o una página de detalles de medios de un sistema de administración de activos digitales.

¿Cuándo es una buena opción?

Cuando intenta integrar fuentes de Yammer con los sitios de SharePoint y las funciones listas para usar de la fuente de inserción satisfacen sus necesidades.

Introducción

En el ejemplo siguiente se muestra cómo aprovisionar sitios con una fuente de Yammer asociada con el sitio en lugar de la fuente de noticias predeterminada del sitio.

El método CreateYammerGroupDiscussionPartXml de la clase YammerUtility.cs procede del ejemplo OfficeDevPnP.Core. Este método crea los archivos XML para una definición de elemento del complemento que se agregue a una página de SharePoint cuando un sitio está preparado. Observe la parte feedType: "grupo" del código. Aquí puede ver que el feedType está configurado para usar el feedType del grupo listo para usar.

public static string CreateYammerGroupDiscussionPartXml(string yammerNetworkName, int yammerGroupId, bool showHeader, bool showFooter, bool useSSO = true)
{
    StringBuilder wp = new StringBuilder(100);
    wp.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
    wp.Append("<webParts>");
    wp.Append("	<webPart xmlns='http://schemas.microsoft.com/WebPart/v3'>");
    wp.Append("		<metaData>");
    wp.Append("			<type name='Microsoft.SharePoint.WebPartPages.ScriptEditorWebPart, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' />");
    wp.Append("			<importErrorMessage>Cannot import this web part.</importErrorMessage>");
    wp.Append("		</metaData>");
    wp.Append("		<data>");
    wp.Append("			<properties>");
    wp.Append("				<property name='Title' type='string'>$Resources:core,ScriptEditorWebPartTitle;</property>");
    wp.Append("				<property name='Description' type='string'>$Resources:core,ScriptEditorWebPartDescription;</property>");
    wp.Append("				<property name='ChromeType' type='chrometype'>None</property>");
    wp.Append("				<property name='Content' type='string'>");
    wp.Append("				<![CDATA[");
    wp.Append("				    <div id='embedded-feed' style='height: 500px;'></div>");
    wp.Append("				    <script type='text/javascript' src='https://assets.yammer.com/assets/platform_embed.js'></script>");
    wp.Append("				    <script type='text/javascript'>  
                yam.connect.embedFeed({ container: '#embedded-feed', network: '"
                + yammerNetworkName
                + @"', feedType: 'group', feedId: '" + yammerGroupId			
                + @"', config: { use_sso: " + useSSO.ToString().ToLower()			
                + @", header: " + showHeader.ToString().ToLower()
                + @", footer: " + showFooter.ToString().ToLower()
                + " }}); </script>");
    wp.Append("				]]>");
    wp.Append("				</property>");
    wp.Append("			</properties>");
    wp.Append("		</data>");
    wp.Append("	</webPart>");
    wp.Append("</webParts>");

    return wp.ToString();
}

El método CreateYammerOpenGroupDiscussionPartXml de la clase YammerUtility.cs procede del ejemplo OfficeDevPnP.Core. Este método crea los archivos XML para una definición de elemento del complemento que se agregue a una página de SharePoint cuando un sitio está preparado. Observe la parte feedType: "open-graph" del código. Aquí puede ver que el feedType está configurado para usar la API de OpenGraph.

public static string CreateYammerOpenGraphDiscussionPartXml(string yammerNetworkName, string url, bool showHeader, 
                                                            bool showFooter, string postTitle="", string postImageUrl="", 
                                                            bool useSso = true, string groupId = "")
{
    StringBuilder wp = new StringBuilder(100);
    wp.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
    wp.Append("<webParts>");
    wp.Append("	<webPart xmlns='http://schemas.microsoft.com/WebPart/v3'>");
    wp.Append("		<metaData>");
    wp.Append("			<type name='Microsoft.SharePoint.WebPartPages.ScriptEditorWebPart, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' />");
    wp.Append("			<importErrorMessage>Cannot import this web part.</importErrorMessage>");
    wp.Append("		</metaData>");
    wp.Append("		<data>");
    wp.Append("			<properties>");
    wp.Append("				<property name='Title' type='string'>$Resources:core,ScriptEditorWebPartTitle;</property>");
    wp.Append("				<property name='Description' type='string'>$Resources:core,ScriptEditorWebPartDescription;</property>");
    wp.Append("				<property name='ChromeType' type='chrometype'>None</property>");
    wp.Append("				<property name='Content' type='string'>");
    wp.Append("				<![CDATA[");
    wp.Append("				    <div id='embedded-feed' style='height: 500px;'></div>");
    wp.Append("				    <script type='text/javascript' src='https://assets.yammer.com/assets/platform_embed.js'></script>");
    wp.Append("				    <script>");
    wp.Append("				        yam.connect.embedFeed({");
    wp.Append("				          container: '#embedded-feed'");
    wp.Append("				                , feedType: 'open-graph'");
    wp.Append("				                , feedId: ''");
    wp.Append("				                , config: {");
    wp.Append("				                     use_sso: " + useSso.ToString().ToLower());
    wp.Append("				                     , header: " + showHeader.ToString().ToLower());
    wp.Append("				                     , footer: " + showFooter.ToString().ToLower());
    wp.Append("				                     , showOpenGraphPreview: false");
    wp.Append("				                     , defaultToCanonical: false");
    wp.Append("				                     , hideNetworkName: false");
    wp.Append("				                     , promptText: 'Start a conversation'");
    if (!string.IsNullOrEmpty(groupId))
    {
        wp.Append("				                 , defaultGroupId: '" + groupId + "'"); 
    }
    wp.Append("				                }");
    wp.Append("				                , objectProperties: {"); 
    wp.Append("				                  url: '" + url + "'");
    wp.Append("				                  , type: 'page'");
    wp.Append("				                  , title: '" + postTitle + "'");
    wp.Append("				                  , image: '" + postImageUrl + "'");
    wp.Append("				                }");
    wp.Append("				            });");
    wp.Append("				        </script>");
    wp.Append("				]]>");
    wp.Append("				</property>");
    wp.Append("			</properties>");
    wp.Append("		</data>");
    wp.Append("	</webPart>");
    wp.Append("</webParts>");

    return wp.ToString();
}

Vea Integración de fuentes de Yammer con sitios de SharePoint (video de Office 365 PnP) para ver un recorrido de Provisioning.Yammer (ejemplo de Office 365 PnP).

Para más información sobre la inserción en Yammer vea el artículo Fuente de inserción de Yammer (Centro para desarrolladores de Yammer).

Para obtener más información sobre Yammer OpenGraph, vea el artículo Formato e introducción a Open Graph (Centro para desarrolladores de Yammer).

API de Yammer OpenGraph y API de REST de Yammer con los SDK de Yammer

En esta opción usará la API de Yammer OpenGraph y la API de REST de Yammer con los SDK de Yammer para integrar Yammer con SharePoint. Estas API también pueden usarse para integrar Yammer con procesos fuera de las páginas web. Algunos ejemplos de estos escenarios incluyen operaciones de ejecución prolongada y servicios.

  • Esta opción tarda más tiempo en implementarse.
  • Esta opción le permite controlar todos los aspectos de la fuente, su apariencia y cómo interactuar con ella.

¿Cuándo es una buena opción?

  • Cuando intenta integrar las fuentes de Yammer con los sitios de SharePoint y las funciones listas para usar de las fuentes de inserción no satisfacen sus necesidades.
  • Cuando intenta integrar fuentes de Yammer en operaciones de ejecución prolongada o servicios.

Introducción

Para obtener más información sobre Yammer OpenGraph, vea el artículo Formato e introducción a Open Graph (Centro para desarrolladores de Yammer).

Los SDK de Yammer proporcionan la capacidad para autenticarse en Yammer. Para obtener más información sobre los SDK de Yammer vea los artículos siguientes:

Después de autenticarse en Yammer a través de los SDK de Yammer puede llamar a las API de REST de Yammer.

Para más información sobre las API de REST de Yammer, vea el artículo API de REST y límites de velocidad (Centro para desarrolladores de Yammer).

Nota de autenticación

En un escenario donde inicia sesión en SharePoint con credenciales diferentes de las que usa para iniciar sesión en SharePoint, es recomendable desarrollar una función de inicio de sesión único para los usuarios. Un ejemplo de este escenario es cuando inicia sesión en SharePoint con un LiveID y necesita iniciar sesión en Yammer con una cuenta de trabajo o personal de Microsoft.

Para implementar un escenario de inicio de sesión único puede indicar a los usuarios que inicien sesión en Yammer la primera vez que lleguen a una página de SharePoint con un componente de Yammer personalizado. Cuando el usuario inicia sesión en Yammer a través del SDK de Yammer puede almacenar el token de actualización del usuario en su perfil. Luego, puede recuperar el token de actualización del perfil de usuario y usarlo para autenticarse en visitas posteriores a la página. Con este método los usuarios finales solo necesita iniciar sesión en Yammer cuando expire el token de actualización.

Se aplica a

  • Office 365 multiempresa (MT)
  • Office 365 dedicado (D)
  • SharePoint 2013 local