0

Inside a provider hosted app I want to retrieve the social feed from the MySite.
Unfortunateley I realized that threads, which are related to a site collection are completeley missing in the result when I call the REST API from inside my app.

When calling the Social feed REST API directly, all works as intended:
GET https://sp.company.com/_api/social.feed/My/News

When calling the Social feed inside the SharePoint app, many things are missing:
GET https://apps-05fca33b76a344.appserver.net/apps/myapp/_api/social.feed/My/News

Example REST API result

Does it have something to do with the app's permission to other site collections?
Does the app need to have read access to all site collections (Permission "Tenant Read") and must be installed in tenant scope to access the full feed?
Or is this a general bug with the social api inside an app?

0

The problem was caused by a missing app permission.
Following permissions are needed to retrieve a full feed:

<AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read" />
    <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="Read" />
    <AppPermissionRequest Scope="http://sharepoint/social/microfeed" Right="Read" />
    <AppPermissionRequest Scope="http://sharepoint/social/trimming" Right="Read" />
</AppPermissionRequests> 

The first three are clear, the last one is the interesting one.
Permission http://sharepoint/social/trimming can not be set in UI and has to be added manually in the app's manifest file.

If you search for it on search engines, you find a few results, but it seems no blog and no stackexchange post ever mentioned this permission scope before.

From https://msdn.microsoft.com/en-us/library/office/jj163864.aspx:

http://sharepoint/social/trimming

This permission request scope used to determine whether to display security-trimmed content in the social feed to apps. If this high-trust permission is not granted, some content (such as activities about documents and sites that the app doesn't have permissions to) is trimmed from the feed data that's returned to the app, even if the user has sufficient permissions. This permission must be manually added to the app's manifest file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.