SOLVED

News article page comments

%3CLINGO-SUB%20id%3D%22lingo-sub-95721%22%20slang%3D%22en-US%22%3ENews%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-95721%22%20slang%3D%22en-US%22%3E%3CP%3EHi!%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20am%20currently%20working%20on%20a%20project%20using%20the%20SharePoint%20Framework.%20I'm%20looking%20for%20a%20way%20to%20get%20the%20comments%20made%20by%20users%20on%20a%20page.%20The%20pages%20are%20news%20articles%2C%20and%20I%20am%20able%20to%20get%20info%20like%20Author%2C%20ImageURL%2C%20ViewCount%20and%20so%20on.%20Where%20are%20the%20comments%20stored%2C%20and%20is%20there%20a%20way%20to%20get%20the%20number%20of%20comments%20made%20on%20a%20news%20article%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ERegards%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EMargareta%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-102770%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-102770%22%20slang%3D%22en-US%22%3EGlad%20to%20help%20%3A)%3C%2Fimg%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-102769%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-102769%22%20slang%3D%22en-US%22%3EHi!%3CBR%20%2F%3E%3CBR%20%2F%3EThanks!%20That%20worked!%3CBR%20%2F%3E%3CBR%20%2F%3E%2F%2FMagnus%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-102760%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-102760%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F60881%22%20target%3D%22_blank%22%3E%40Magnus%20Forsmark%3C%2FA%3E%2C%20I%20got%20it%20from%20the%20JSON%20response%20object.%20I%20am%20somewhat%20a%20beginner%20at%20SPFx%2C%20so%20I%20am%20not%20100%25%20sure%20this%20is%20the%20correct%20approach%2C%20but%20here%C2%B4s%20an%20example%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3Eprivate%20getNews(url%3A%20string)%20%3A%20Promise%26lt%3Bany%26gt%3B%20%7B%0A%20%20%20%20return%20this.context.spHttpClient.get(url%2C%20SPHttpClient.configurations.v1).then((response%3A%20SPHttpClientResponse)%20%3D%26gt%3B%20%7B%0A%20%20%20%20%20%20if%20(response.ok)%20%7B%0A%20%20%20%20%20%20%20%20return%20response.json()%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20console.log(%22WARNING%20-%20failed%20to%20hit%20URL%20%22%20%2B%20url%20%2B%20%22.%20Error%20%3D%20%22%20%2B%20response.statusText)%3B%0A%20%20%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D)%3B%0A%20%20%7D%0A%0A%20%20private%20getNewsItems()%3A%20Promise%26lt%3BNewsItem%5B%5D%26gt%3B%20%7B%0A%20%20%20%20%2F%2F%20URL%20to%20get%20news%0A%20%20%20%20var%20url%20%3D%20this.context.pageContext.web.absoluteUrl%20%2B%20%60%2F_vti_bin%2Fhomeapi.ashx%2Fnews%3Fstart%3D0%26amp%3Bcount%3D200%60%3B%0A%0A%20%20%20%20return%20this.getNews(url).then((response)%20%3D%26gt%3B%20%7B%0A%20%20%20%20%20%20%20%20var%20news%3A%20Array%26lt%3BNewsItem%26gt%3B%20%3D%20new%20Array%26lt%3BNewsItem%26gt%3B()%3B%0A%0A%20%20%20%20%20%20%20%20response.Items.forEach((item%3A%20any)%20%3D%26gt%3B%20%7B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20newsItem%20%3D%20new%20NewsItem()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.Title%20%3D%20item.Title%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.Published%20%3D%20item.FirstPublishedDate%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.Author%20%3D%20item.Author.Title%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.URL%20%3D%20item.Url%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.Text%20%3D%20item.Description%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.ImageUrl%20%3D%20item.ImageUrl%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.LastModifiedBy%20%3D%20item.LastModifiedBy%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20newsItem.ViewCount%20%3D%20item.ViewCount%20%3D%3D%20null%20%3F%200%20%3A%20item.ViewCount%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20news.push(newsItem)%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D)%3B%20%20%0A%0A%20%20%20%20%20%20%20%20return%20news%3B%0A%20%20%20%20%7D)%20%0A%20%20%7D%0A%0A%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-102759%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-102759%22%20slang%3D%22en-US%22%3EHi!%3CBR%20%2F%3E%3CBR%20%2F%3EHow%20did%20you%20get%20the%20ViewCount%3F%3CBR%20%2F%3E%3CBR%20%2F%3ERegards%2C%3CBR%20%2F%3EMagnus%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-95784%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-95784%22%20slang%3D%22en-US%22%3EGlad%20to%20help!%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-95783%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-95783%22%20slang%3D%22en-US%22%3E%3CP%3EThank%20you%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F60%22%20target%3D%22_blank%22%3E%40Juan%20Carlos%20Gonz%C3%A1lez%20Mart%C3%ADn%3C%2FA%3E%2C%20that%20helped%20a%20lot!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-95780%22%20slang%3D%22en-US%22%3ERe%3A%20News%20article%20page%20comments%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-95780%22%20slang%3D%22en-US%22%3EThe%20comments%20are%20not%20stored%20in%20SPO%20itself...take%20a%20look%20at%20this%3A%20%3CA%20href%3D%22http%3A%2F%2Fwww.vrdmn.com%2F2017%2F07%2Fworking-with-page-comments-rest-api-in.html%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttp%3A%2F%2Fwww.vrdmn.com%2F2017%2F07%2Fworking-with-page-comments-rest-api-in.html%3C%2FA%3E%3C%2FLINGO-BODY%3E
Highlighted
Frequent Contributor

Hi!

 

I am currently working on a project using the SharePoint Framework. I'm looking for a way to get the comments made by users on a page. The pages are news articles, and I am able to get info like Author, ImageURL, ViewCount and so on. Where are the comments stored, and is there a way to get the number of comments made on a news article?

 

Regards,

 

Margareta

 

 

7 Replies
Highlighted
Solution
The comments are not stored in SPO itself...take a look at this: http://www.vrdmn.com/2017/07/working-with-page-comments-rest-api-in.html
Highlighted

Thank you @Juan Carlos González Martín, that helped a lot!

Highlighted
Glad to help!
Highlighted
Hi!

How did you get the ViewCount?

Regards,
Magnus
Highlighted

@Magnus Forsmark, I got it from the JSON response object. I am somewhat a beginner at SPFx, so I am not 100% sure this is the correct approach, but here´s an example:

 

private getNews(url: string) : Promise<any> {
    return this.context.spHttpClient.get(url, SPHttpClient.configurations.v1).then((response: SPHttpClientResponse) => {
      if (response.ok) {
        return response.json();
      } else {
        console.log("WARNING - failed to hit URL " + url + ". Error = " + response.statusText);
        return null;
      }
    });
  }

  private getNewsItems(): Promise<NewsItem[]> {
    // URL to get news
    var url = this.context.pageContext.web.absoluteUrl + `/_vti_bin/homeapi.ashx/news?start=0&count=200`;

    return this.getNews(url).then((response) => {
        var news: Array<NewsItem> = new Array<NewsItem>();

        response.Items.forEach((item: any) => {     
              var newsItem = new NewsItem();
              newsItem.Title = item.Title;                
              newsItem.Published = item.FirstPublishedDate;
              newsItem.Author = item.Author.Title;
              newsItem.URL = item.Url;  
              newsItem.Text = item.Description;   
              newsItem.ImageUrl = item.ImageUrl;
              newsItem.LastModifiedBy = item.LastModifiedBy;
              newsItem.ViewCount = item.ViewCount == null ? 0 : item.ViewCount;
              news.push(newsItem);             
        });  

        return news;
    }) 
  }

Highlighted
Hi!

Thanks! That worked!

//Magnus
Highlighted
Glad to help :)