Поле _LikeCount и _CommentCount отсутствует в запросе запроса CAM

#rest #sharepoint #sharepoint-online #spfx #caml

Вопрос:

Привет, я создаю веб-часть spfx для отображения наиболее понравившихся и прокомментированных новостей, однако _LikeCount и _CommentCount не отображаются в результате.

Смотрите ниже код:

 props.topCount = props.topCount === undefined ? 5: props.topCount;
  console.log("Count: "   props.topCount);
   
  const options: ISPHttpClientOptions = {
    headers: {'odata-version':'3.0'},
    body: `{'query': {
      '__metadata': {'type': 'SP.CamlQuery'},
      'ViewXml': '<View><Query><OrderBy><FieldRef Name="_CommentCount" Ascending="False" /></OrderBy><Where><Eq><FieldRef Name="PromotedState" /><Value Type="Number">2</Value></Eq></Where></Query><RowLimit>` props.topCount `</RowLimit></View>'
    }}`
  };

 
  const fetchData = async () => {
      
      let currentWebUrl  = props.sites === undefined ? props.origSiteURL : props.sites[0].url;
      console.log("Site URL: "   currentWebUrl);
      let requestUrl = currentWebUrl.concat("/_api/web/lists/GetByTitle('Site Pages')/GetItems");   
       console.log("Current URL: "  requestUrl);
      props.spHttpClient.post(requestUrl, SPHttpClient.configurations.v1, options)  
      .then((response: SPHttpClientResponse) => {  
          if (response.ok) {  
              response.json().then((responseJSON) => {  
                  if (responseJSON!=null amp;amp; responseJSON.value!=null){  
                    settop_news_like(responseJSON.value);  
                    console.log(settop_news_like);
                  }  
              });  
          }  
      });

  };
 

Попробовал также добавить:

 <ViewFields>
    <FieldRef Name="_LikeCount"></FieldRef>
    <FieldRef Name="_CommentCount"></FieldRef>
</ViewFields>
 

и это ниже, но все равно не повезло.

 expand=fields($select=createdDateTime,BannerImageUrl,PromotedState,FileLeafRef,AuthorLookupId,Modified,_CommentCount,_LikeCount,Title,Description,LinkTitle)

 
 

Ответ №1:

Существует отдельный API для получения количества лайков и комментариев для современных страниц. В статье ниже объясняется, как получить эти поля для страниц с помощью RenderListDataAsStream api:

https://www.eliostruyf.com/getting-likes-and-comments-from-modern-pages/