ארכיון קטגוריה: כל השאר

HTTP 406 שגיאה בעת שימוש $http.get זוויתי נגד נקודות הקצה של SharePoint מנוחה

עדכון: מארק AD ndersson הצביע נפלאה שכזו פרטי: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. זה מסביר הרבה :).

אולי זו הכותרת הגרוע ביותר של הבלוג אי פעם! בכל אופו.

אני בדרך כלל עושה את כל שלי שטנץ נגד מופע O365. יש לי מופע אישי שלי כך לא צריך להיות מודאג להשפיע על מישהו אחר. במאמר מוסגר – זוכר מתי נתקשר נשאו סביב מכונות וירטואליות על המחשבים הניידים שלנו עם מוס – SQL Server, IIS, מחליטים vs Hyper-V. VMWare? בכל מקרה...

שפיתחתי אפליקציה באמצעות זוויתי בסביבה זו שעושה, בין היתר, זה:

$http.get(serverUrl)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

זה היה עובד בסדר גמור בסביבות שני שונות SharePoint online. עם זאת, כאשר עמיתי מועבר זה מופע Cloudshare, הוא התחיל HTTP 406 שגיאה (מי היה הפעם הראשונה שקיבלתי אי פעם את זה, אז... איזה כיף, אני מניח). עשיתי קצת מחקר ואנו הכותרת "מקבל" היה את. SharePoint online היה מרוצה.:

קבל: יישום/json

אבל המופע cloudshare (מהי SP-פרם, מתארח בשרת וירטואלי) רציתי הקלאסי "odata = מילולי" הוסיף גם כן:

קבל: יישום/json;odata = מפורט

כדי לתקן את זה, הוספנו את הכותרת ככזה:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

כי יש להיפטר 406, אבל זה גם שינה את הפורמט של התגובה. זה היה יותר. מפורט. (haha!) עוד שינויים נדרשו והנה התוצאה הסופית:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.d.results.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

. זה רק הפך 30 דקה בעיה עבורנו, אז היה לנו מזל. אני מקווה שמישהו ימצא את זה שימושי.

</קצה>

כיצד לציין אנשים כמו טווח חיפוש / מקור תוכן באמצעות SharePoint 2013 השאר API

הייתה לי סיבה לעבוד עם ה-SharePoint 2013 Api של חיפוש דרך כל השאר בפעם הראשונה. . רציתי לחפש אנשים, לא מסמכים. המפתח לומד כאן זה תציין מקורות תוכן באמצעות GUID שלה (או לפחות במקרה הזה). גזיר jQuery הבאה מציגה כיצד:

    loadExpertsAsync: פונקציה() {

        jQuery.support.cors = נכון;

        $.אייאקס({
            כתובת url: זה.CreateFullApiUrl() +
                "?querytext = "פורטלים"&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,מייל העבודה,מיומנויות,AboutMe,תחומי עניין,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            שיטה: "לקבל",
            כותרות: { "קבל": "יישום/json; odata = מפורט" },
            מטמון: שווא,
            הצלחה: פונקציה (תוצאה) {

במקרה שלי, . אני רץ ה-API נגד SharePoint online. כדי לקבל את ה-GUID, עקבתי אחרי השלבים:

  1. גישה מרכז הניהוליים של SharePoint
  2. בחר "לחפש" של הניווט יד שמאל
  3. בחר "ניהול מקורות התוצאה"
  4. בחר "אנשים מקומיים תוצאות"
  5. תראה את כתובת ה-URL.

כתובת האתר שלי נראה. בערך:

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

הפרמטר sourceid הוא מה עבד בשבילי.

(אני מבין sourceid בפועל עשוי להיות משהו קבוע עם SP, but I’ll always check anyway 🙂 ).

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

דוגמה SharePoint השאר שיחות

הנה קבוצת מדגם השאר שיחות לעבוד בשבילי, עשוי לעזור לך גם כן. כמו של 02/2014, there are two examples 🙂

  1. הפניה עמודה עם רווחים בשם שלו
  2. הפניה עמודת בחירה מרובה
  3. לבצע חיפוש אנשים באמצעות מנוחה

 

אני אוסיף את זה ככל שחולף הזמן.

להלן כמה דיו שימושי שמצאתי גם כן:

הפניה עמודה עם רווחים בשם שלו

ליצור רשימה מותאמת אישית עם עמודה בשם "בלוג מחבר" (רווח בין בלוג מחבר).

$select כדי להפנות לעמודה זו היא:

image

פשוט החלף את החלל "_x0020_". אנו רואים את _x0020_ בדוגמאות רבות ברחבי האינטרנט במלואו השאר זה לא שונה.

אם לא תעשה את זה, אתה עלול לקבל הודעת שגיאה כמו זה:

הביטוי “מחבר הבלוג” אינה חוקית.

קל מספיק.

הפניה עמודת בדיקת מידע בחירה מרובה

להגדיר:

  1. יצירת רשימה מותאמת אישית בשם קטגוריות.
  2. להוסיף כמה קטגוריות. הוספתי קטגוריות נוהג כך:image
  3. ליצור רשימה מותאמת אישית נוספת הנקראת MockBlog ולהוסיף קטגוריות כעמודה רשימת בחירה מרובה (או עמודת אתר אם זה הקטע שלך. בשד).

הוספת פריטים מסוימים לרשימת Mockblog. ואתה מוכן.

שיחה סגנון Ajax בעזרת jQuery ייראה בערך כך:

serverUrl   = "/_api/אינטרנט/רשימות/GetByTitle('MockBlog')/פריטים" +
             "?$בחר = כותרת,קטגוריות/כותרת,Blog_x0020_Author/כותרת" + 
             "&$הרחב = Blog_x0020_Author,קטגוריות";

אנחנו מספרים SharePoint. תן לי את הכותרת עבור כל הקטגוריות (קטגוריות/כותרת). לקבל את הערכים בפועל עבור כותרת על-ידי $הרחבing קטגוריות." (בפרפרזה נינוחה שלי הוא כנראה די רופף, אבל איך אני לפרש את זה).

אם אתה עושה את זה באמצעות JavaScript ושימוש כנר להסתכל על הפלט, אתה מקבל משהו כזה בתמורה:

 

image

(האמור לעיל הוא אובייקט JSON)

לבצע חיפוש אנשים באמצעות מנוחה

אני בבלוג על זה בנפרד. המפתח הוא כדי לציין פרמטר sourceid שערכו הוא ה-GUID של מקור התוכן המקומיים. (מקורות התוכן היה אמור להיקרא טווחי וזה הו-שלי כל כך חזק לא לקרוא הכל טווח בשבילי!).

קרא עוד על זה כאן: http://www.mstechblogs.com/paul/?p=10385

 

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

מהיר וקל: יצירת אתר SharePoint באמצעות מנוחה

ישנם הרבה אפשרויות מסביב המציגים כיצד לעשות זאת, אבל לא מצאתי קישור אליו מקיף, אז הנה אנחנו.

באפשרותך ליצור אתר SharePoint באמצעות ה-API של מנוחה.  הנה דוגמא אפוי לגמרי:

<!--
    SiteRequestForm.html: לאסוף מידע וליצור אתר עבור המשתמש.
-->

<מרכז>
<טבלה>
    <. tr>
        <td>שם האתר:</td>
        <td><קלט סוג= "טקסט" שם= "SiteName" מזהה= "SiteName" /></td>
    </. tr>
    <. tr>
        <td colspan= "2">
            <קלט סוג= "להגיש" מזהה= "CreateSiteButton" ערך= "יצירת האתר" />
        </td>
    </. tr>
</טבלה>
</מרכז>

<קובץ script src="../Plugins/jquery-1.11.0.min.js"></קובץ script>

<קובץ script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "פרמטרים": {
                __metadata: { "סוג": ". SP.WebInfoCreationInformation" },
                כתובת Url: "Paultest1",
                כותרת: "Paultest1",
                תיאור: "שנוצרו על-ידי מנוחה אינטרנט על-ידי פול!",
                שפה: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: שווא
            }
    },

    createSite: פונקציה () {

        jQuery.support.cors = נכון;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").ול();
        
        $.אייאקס({
            כתובת url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            שיטה: "פוסט",

            כותרות: {
                "מקבל": "יישום/json; odata = מפורט",
                "סוג תוכן": "יישום/json;odata = מפורט",
                "X-RequestDigest": $("#__REQUESTDIGEST").ול()
            },

            נתונים: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            הצלחה: פונקציה () { התראה("הצלחה"); },
            שגיאה: פונקציה () { התראה("שגיאה"); }

        });
    },

    wireUpForm: פונקציה () {
        $("#CreateSiteButton").לחץ(פונקציה () {
            התראה("עומד לנסות וליצור את האתר.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</קובץ script>

כאשר הוא מוצלח, אתה מקבל מנה JSON בתגובה ככה:

image

שלמדנו מן הזה כלול ומחשבות המפתח שלי:

  • גישה זו משתמש jQuery.  במקרה שלי, הספרייה jQuery שלי ממוקם "./ תוספים. "  אתה רוצה לשנות את זה כדי להצביע על מיקום JQ האהוב שלך.
  • באפשרותך להעתיק ולהדביק את אותו מקטע שלם אל Web Part של עורך התוכן בדף, זה אמור לעבוד טוב.  אתה רוצה לשנות את נקודת הקצה של השיחה API, ודא שאתה מציין JQ כראוי.
  • כתובת ה-URL הוא יחסי נקודת הקצה של ה-API שלך.  במקרה שלי, יוצר אתרי המשנה מתחת https://bigapplesharepoint.com
  • אתה לא צריך לספק תוכן-אורך. כמה פוסטים ו MSDN המסמך מרמז שאתה עושה, אבל קרה לי באופן אוטומטי, ואני משער מטופל בידי השיחה .ajax $ עצמה.
  • שורה זו נדרשת כדי למנוע תגובה "אסורים": "X-RequestDigest": $("#__REQUESTDIGEST").ול().  יש דרכים אחרות לעשות את זה, . אבל זה די נחמד...  איבדתי את הקישור לבלוג סיפק קיצור דרך זה.  H/T לך, בלוגר מסתורי!

מזל טוב, מקווה שזה יעזור למישהו.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

מהיר ופשוט: SharePoint השאר קוראים רק החזרה 100 רשומות

אני עובד באתר אינטרנט ציבורי מול המרפאה שלי SharePoint כאן ב- ניו-יורק הוא משתמש הרבה שיחות JavaScript ומנוחה כדי להציג תוכן.

במהלך הפיתוח mainline, ליצור dataset קטן עם רק 10 או אז שורות רשימה מותאמת אישית וכל השיחות שלי לנוח הוציא משם.  פעם אחת אני מקפיץ את הרשימה יש כמה מאות שורות של נתונים כדי לבדוק את הצמיחה הצפויה, מצאתי כי היה מקבל בדיוק 100 השורות המוחזרות על השיחות שלי לנוח.

. זה דבר פשוט מאוד לכתובת  במקרה שלי (ואני מאמין ברוב המקרים), ברירת המחדל מנוחה קורא SharePoint (אולי כמו תקן תעשייתי?) החזרה 100 שורות.  כדי להחזיר יותר מאשר ברירת המחדל, השתמש בפרמטר $top לטלפון שלך, כמו ב-:

להשיג /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/פריטים?$בחר = מזהה,כותרת,קטגוריות/כותרת,Blog_x0020_Author/כותרת,DatePublished,BlogSummary&$הרחב = Blog_x0020_Author,קטגוריות&$מסנן =&$העליון = 9999

. בחרתי 9999 במקרה זה מאז ידעתי את זה growth-wise, . לא יהיו יותר 200 או אז ששורות שנוספו לרשימה זו בשנה.  אם זה הופך ובאדישות, נוכל ליישם שמידה מסוימת של החלפה במורד הכביש.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin