2015-11-21 3 views
0

Я пытаюсь использовать службы RESTful для возврата всех ответов в SharePoint sitefeed. В настоящее время я успешно использую этот код для получения сообщений sitefeed в:Получить все ответы в SharePoint Sitefeed с помощью REST api

function getFeed(){ 
var feed; 
var reply; 
var rCounter; 
$.ajax({ 
    url: "https://<mysite>.sharepoint.com/<sitename>/_api/social.feed/actor([email protected])/[email protected]=%27https://<mysite>.sharepoint.com/<sitename>/newsfeed.aspx%27", 
    method: "GET", 
    headers: { "Accept": "application/json; odata=verbose" }, 
    success: function (data) { 
     // Returning the results 
     myFeed = $(data); 
     console.log(myFeed); 
     for (i = 0; i < myFeed[0].d.SocialFeed.Threads.results.length; i++) { 
      feed = (myFeed[0].d.SocialFeed.Threads.results[i].RootPost.Text); 
      console.log(myFeed[0].d.SocialFeed.Threads.results[0].Actors.results[1].Name + ": " + feed); 
       if (myFeed[0].d.SocialFeed.Threads.results[i].Replies.results.length >0){ 
        rCounter = myFeed[0].d.SocialFeed.Threads.results[i].Replies.results.length; 
        for (j = 0; j < myFeed[0].d.SocialFeed.Threads.results[i].Replies.results.length; j++) { 
         rCounter--; 
         reply = myFeed[0].d.SocialFeed.Threads.results[i].Replies.results[rCounter].Text; 
         console.log(reply); 
        } 
       } 
      console.log("* * * * * * * * *");  
     } 
    }, 
    error: function (data) { 
     console.log("ERROR - SEE CODE"); 
    } 
    }); 

} 

Однако это дает мне сообщения, но только с двумя последними ответами. Согласно this MSDN post, мне нужно использовать метод POST, чтобы получить все ответы и передать идентификатор потока. Так что я сделал новую функцию:

function getPost(){ 
$.ajax({ 
    url: "https://<mysite>.sharepoint.com/<sitename>/_api/social.feed/post(ID=ai)/[email protected]='8.211b75cd6dc84fe4bc6c3e9f46971f51.97717348cd3048768103d55751dc0e2d.211b75cd6dc84fe4bc6c3e9f46971f51.819bde2276b948a8a120964289476489.17c08f26b90a4b659ff1fcfb0ede4025.5.5.1'", 
    method: "POST", 
    headers: { "Accept": "application/json; odata=verbose" }, 
    success: function (data) { 
     // Returning the results 
     console.log($(data)); 
     }, 
    error: function (data) { 
     console.log("ERROR - SEE CODE"); 
    } 
    }); 
} 

Когда я запускаю эту новую функцию, я получаю 403 (запрещенную) ошибку. Может ли кто-нибудь сказать мне, что я делаю неправильно?

+0

В каждом методе POST вы должны передать значение заголовка 'X-RequestDigest'. –

ответ

1

попробуйте пропустить заголовки, как показано ниже.

функция getPost() {

$ .ajax ({

url: "https://<mysite>.sharepoint.com/<sitename>/_api/social.feed/post(ID=ai)/[email protected]='8.211b75cd6dc84fe4bc6c3e9f46971f51.97717348cd3048768103d55751dc0e2d.211b75cd6dc84fe4bc6c3e9f46971f51.819bde2276b948a8a120964289476489.17c08f26b90a4b659ff1fcfb0ede4025.5.5.1'", 
method: "POST", 
headers: { "Accept": "application/json;odata=verbose", 
     "X-RequestDigest": $("#__REQUESTDIGEST").val() }, 
success: function (data) { 
    // Returning the results 
    console.log($(data)); 
    }, 
error: function (data) { 
    console.log("ERROR - SEE CODE"); 
} 
}); 

}

Смежные вопросы