Archives mensuelles: Février 2014

Comment spécifier des gens comme une zone de recherche / Source de contenu à l'aide de SharePoint 2013 API REST

J'ai eu raison de travailler avec SharePoint 2013 API de recherche par l'intermédiaire de repos pour la première fois. J'ai voulu Rechercher des personnes, pas de documents. La clé ici est que l'apprentissage vous spécifiez des sources de contenu via son GUID (ou au moins dans ce cas). JQuery par l'extrait suivant comment:

    loadExpertsAsync: fonction() {

        jQuery.support.cors = True;

        $.Ajax({
            URL: ce.CreateFullApiUrl() +
                "?QueryText = « portails »&SourceId = « b09a7990-05ea-4af9-81ef-edfab16c4e31 »" +
                "&sélectionnezPropriétés ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Compétences,AboutMe,Intérêts,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&RowLimit = 99",
            méthode: "Télécharger",
            en-têtes: { "Accepter": "application/json; OData = verbose" },
            cache: faux,
            succès: fonction (résultat) {

Dans mon cas, J'utilise l'API contre SharePoint en ligne. Pour obtenir le GUID, J'ai suivi ces étapes:

  1. Accès au centre d'administration de SharePoint
  2. Sélectionnez « Rechercher » de la navigation de gauche
  3. Sélectionnez « Gérer les Sources de résultat »
  4. Sélectionnez « Les populations locales les résultats »
  5. Regardez l'URL.

Mon URL regardé quelque chose comme:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

Le paramètre ID source est ce qui a fonctionné pour moi.

(Je comprends que l'ID de la source peut en fait être une sorte de chose permanente avec SP, mais je vais toujours vérifier de toute façon 🙂 ).

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Exemple SharePoint reste appels

Voici une série d'appels de repos échantillon qui fonctionne pour moi et peut vous dépanner ainsi. Comme des 02/2014, il y a deux exemples 🙂

  1. Référencer une colonne avec des espaces dans son nom
  2. Référence une colonne de sélection multiple
  3. Effectuer une recherche de personnes par l'intermédiaire de repos

 

Je vais ajouter à cela que le temps passe.

Voici quelques encres utiles, que j'ai trouvé aussi bien:

Référencer une colonne avec des espaces dans son nom

J'ai créer une liste personnalisée avec une colonne nommée « Auteur du Blog » (espace entre Blog et auteur).

Le $select pour référencer cette colonne est:

image

Il suffit de remplacer l'espace avec « _x0020_ ». Nous voyons le _x0020_ dans beaucoup d'exemples à travers les internets et le reste n'est pas différent.

Si vous ne faites que, vous êtes susceptible d'obtenir un message d'erreur comme ceci:

L'expression “Auteur du blog” n'est pas valide.

Assez facile.

Référence une colonne de recherche sélection multiple

Mettre en place:

  1. Créer une liste personnalisée nommée catégories.
  2. Ajouter certaines catégories. J'ai ajouté des catégories thusly:image
  3. Créer une autre liste personnalisée appelée MockBlog et ajouter des catégories comme une colonne de liste à sélection multiple (ou colonne de site si cela est comment dé).

Ajouter des articles à votre liste de Mockblog et vous êtes prêt.

Un appel de style Ajax en utilisant jQuery ressemblera à quelque chose comme ça:

serverUrl  = "/_API/web/listes/GetByTitle(« MockBlog »)/articles" +
             "?$Sélectionnez = Title,Catégories/titre,Blog_x0020_Author/titre" + 
             "&$Développez = Blog_x0020_Author,Catégories";

Nous sommes en disant SharePoint "Donnez-moi le titre pour toutes les catégories (Catégories/titre). Obtenir les valeurs réelles pour Titre par $DéveloppezING, la liste de catégories. » (Mon paraphrasant RESTful est probablement assez lâche, mais cela comment j'interprète il).

Si vous faites ceci via JavaScript et utiliser Fiddler pour Regardez la sortie, vous obtenez quelque chose comme ça en retour:

 

image

(Ce qui précède est un objet JSON)

Effectuer une recherche de personnes par l'intermédiaire de repos

J'ai blogué sur ce séparément. Il est important de spécifier un paramètre sourceid dont la valeur est le GUID de la source de contenu de populations locales. (Sources de contenu utilisé pour être appelées étendues et c'est oh-Gustave n'est pas si difficile d'appeler tout un champ pour moi!).

Pour en savoir plus à ce sujet ici: http://www.mstechblogs.com/paul/?p=10385

 

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Facile et rapide: Créer un Site SharePoint à l'aide de repos

Il y a beaucoup de ressources autour qui montrent comment procéder, mais je ne pouvais pas trouver un lien complet aller-à, Nous voici donc.

Vous pouvez créer un site SharePoint à l'aide de l'API REST.  Voici un exemple entièrement cuit:

<!--
    SiteRequestForm.html: Recueillir des informations et créer un site pour l'utilisateur.
-->

<Centre>
<table>
    <TR>
        <TD>Nom du site:</TD>
        <TD><entrée type= "texte" nom= SiteName"" ID= SiteName"" /></TD>
    </TR>
    <TR>
        <TD colspan= 2"">
            <entrée type= "submit" ID= "CreateSiteButton" valeur= "Créer le Site" />
        </TD>
    </TR>
</table>
</Centre>

<script SRC="../Plugins/jQuery-1.11.0.min.js"></script>

<script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "paramètres": {
                __metadata: { type"": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Titre: "Paultest1",
                Description: "web rest-créé par Paul!",
                Langue: 1033,
                WebTemplate: « sts",
                UseUniquePermissions As Boolean: faux
            }
    },

    createSite: fonction () {

        jQuery.support.cors = True;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL: « https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            méthode: "POST",

            en-têtes: {
                "accepter": « application/json; OData = verbose",
                "content-type": « application/json;OData = verbose",
                « X-RequestDigest": $(« #__REQUESTDIGEST").Val()
            },

            données: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            succès: fonction () { alerte("la réussite"); },
            erreur: fonction () { alerte("erreur"); }

        });
    },

    wireUpForm: fonction () {
        $("#CreateSiteButton").Cliquez sur(fonction () {
            alerte("Sur le point d'essayer et de créer le site.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script>

Lorsque réussie, vous obtenez un paquet JSON en réponse à ceci:

image

Mes pensées principales et les enseignements de cette comprennent:

  • Cette approche utilise jQuery.  Dans mon cas, ma bibliothèque jQuery est situé dans ".../ plugins. "  Vous aurez envie de changer cela pour pointer vers votre emplacement préféré de JQ.
  • Vous pouvez copier et coller cet extrait entier dans un composant WebPart éditeur de contenu sur une page, et il devrait fonctionner parfaitement.  Vous aurez envie de changer le point de fin de l'appel d'API et assurez-vous que vous référencez JQ correctement.
  • L'URL est relative à point de terminaison de l'API.  Dans mon cas, C'est créer des sous-sites sous https://bigapplesharepoint.com
  • Vous n'avez pas besoin de fournir une contenu-longueur. Certains blogs et MSDN document implique que vous faites, mais s'est passé pour moi automatiquement, qui je suppose est géré par l'appel de $.ajax lui-même.
  • Cette ligne est nécessaire pour éviter une réponse "interdite": « X-RequestDigest": $(« #__REQUESTDIGEST").Val().  Il existe d'autres façons de le faire, mais c'est assez agréable.  J'ai perdu le lien de blog qui a fourni ce raccourci.  H/T à vous, mystérieux blogueur!

Bonne chance et espérons que cela aide quelqu'un.

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Surmonter un problème ennuyeux avec des URL relatives dans le lancement rapide de SharePoint

Je voulais ajouter un lien vers la navigation lancement rapide l'autre jour et m'a SharePoint:

image

Version texte pur qui est:

Assurez-vous que l'URL est valide et commence par soit un caractère valide (un signe dièse (#) ou oblique (/)) ou un protocole de prise en charge valable (par exemple, « http://’, « https://’, ' fichier://’, « ftp://’, « mailto:’, « nouvelles:’).

"Blech et pox!"J'ai dit.

Une solution de contournement consiste à utiliser JavaScript pour trouver un lien connu dans le lancement rapide et substituer son comportement.

Pour tester cette, Ajouter un nouveau lien à votre site de test thusly:

image

J'ai utilisé jQuery. Pour le résoudre, obtenir quelques JavaScript et jQuery sur la page à l'aide de votre technique préférée et avec une ligne de code suivante:

 

$(document).prêt( fonction () {

    $("un:contient(« Tester le remplacement de l'URL »)").Cliquez sur(fonction () { alerte("Cliquez sur changement de comportement!"); retour faux;});

});

Et ton oncle Bob.

Le sélecteur jQuery conclut chaque <un> balise qui a « Test URL de remplacement » dans son nom. Vous pouvez trouver-tune qui selon votre lien et autres.

Le .Cliquez(fonction() remplace tout ce qui l'aurait fait SharePoint lorsque l'utilisateur a cliqué. Assurez-vous que vous « retournez false » ou bien il va faire vos trucs et puis essayez de la chose href trop, qui n'est certainement pas votre but.

Cela a été fait et test dans un environnement en ligne de SharePoint mais doit travailler bien en 2010 et plus tôt aussi.

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Simple et rapide: SharePoint reste appel seules déclarations 100 Comptes rendus

J'ai travaillé sur un site public face pour ma pratique de SharePoint ici dans New York et il utilise beaucoup d'appels JavaScript et reste pour afficher le contenu.

Au cours du développement de ligne principale, J'ai créer un petit groupe de données avec juste 10 ou alors rangées dans une liste personnalisée et mes appels reste tous tiré de là.  Une fois je suis tombé vers le haut de la liste d'avoir quelques centaines de lignes de données pour tester la croissance anticipée, J'ai trouvé que je voulais en venir exactement 100 lignes retournées retour sur mes appels reste.

Il s'agit d'une chose très simple à l'adresse.  Dans mon cas (et je crois que dans la plupart des cas), la valeur par défaut reste appelle à SharePoint (et peut-être comme un standard de l'industrie?) retour 100 lignes.  Pour retourner plus que la valeur par défaut, Utilisez le paramètre $top lors de votre appel, comme dans:

OBTENIR /Insights Dev/_api/web/lists/GetByTitle(« MockBlog »)/articles?$Sélectionnez = ID,Titre,Catégories/titre,Blog_x0020_Author/titre,DatePublished,BlogSummary&$Développez = Blog_x0020_Author,Catégories&$filtre =&$haut = 9999

J'ai pris 9999 dans ce cas car je sais que growth-wise, Il n'y aura plus de 200 ou alors les lignes ajoutées à cette liste en un an.  S'il devient disgracieux, Nous pouvons mettre en œuvre certains pagination vers le bas de la route.

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Simple et rapide: Résoudre "paramètre d'URL non valide” problème avec UpdateListItems en lists.asmx

Lorsque vous travaillez avec UpdateListItems via lists.asmx, Il est facile de générer une erreur:

Paramètre d'URL non valide.

L'URL fournie contient une valeur ou une commande non valide. Veuillez vérifier de nouveau l'URL.

Vous pouvez obtenir cette erreur quand on oublie d'inclure l'ID dans la la liste des champs à mettre à jour.  Ce, comme beaucoup de ces SP services web, est un peu paradoxal étant donné que vous devez inclure l'ID dans l'attribut ID de la <Méthode> élément.  Et vous n'êtes pas mis à jour des ID et voulez probablement jamais en premier lieu.

Cette enveloppe SOAP fonctionne:

<soapenv:Enveloppe xmlns:soapenv =« http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:Corps>                      
    <UpdateListItems xmlns =« http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <nom de la liste>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</nom de la liste>                     
        <mises à jour>                     
         <Lot OnError ="Continuer">
          <Méthode ID =1"" Cmd =Mise à jour"">
            <Nom de champ ="CooperativeLock">verrouillé!</Champ>
            <Nom de champ =« CARTE D'IDENTITÉ">1</Champ>
          </Méthode>
        </Lot>                     
        </mises à jour>                
      </UpdateListItems>             
  </soapenv:Corps>         
</soapenv:Enveloppe>

Si vous supprimez la référence de champ ID puis vous obtiendrez le message « Paramètre URL invalide » ennuyeux.

</fin>

undefinedS'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin