Activity Feeds v3 is in beta — try it out!

Feed and Activity Visibility

Feed Visibility Levels

Feed groups have a default visibility (if it’s not set when creating the group, visible will be set). You can also override the group’s default when creating a feed. A feed’s visibility level can’t be changed after creation.

// Create a feed with custom visibility
$feed = $feedsClient->feed('user', 'jack');
$response = $feed->getOrCreateFeed(
    new \GetStream\GeneratedModels\GetOrCreateFeedRequest(
        userID: 'jack',
        data: new \GetStream\GeneratedModels\FeedInput(
            visibility: 'public'
        )
    )
);

// Create a feed group with default visibility
$createResponse = $feedsClient->createFeedGroup(
    new \GetStream\GeneratedModels\CreateFeedGroupRequest(
        id: 'myid',
        defaultVisibility: 'public',
        activityProcessors: [
            ['type' => 'default']
        ]
    )
);

Supported visibility levels:

LevelViewing feed (activities + metadata)FollowingPosting
visibleAnyone can viewAnyone can followOnly the owner or member/follower with the post permission can post
publicAnyone can viewAnyone can followAnyone can post
followersOnly approved followers can viewAnyone can send a follow request,
follow requests have to be approved
Only the owner or member/follower with the post permission can post
membersOnly members can viewOnly members can followOnly the owner or member/follower with the post permission can post
privateOnly the owner can viewOnly the owner can followOnly the owner can post

Activity Visibility Levels

  • public: marks the activity as public - everyone who can view feed content, can see it
  • private: marks the activity as private - only feed owner can see it
  • tag:mytag: marks the activity as only visible to followers/members with the permission to see this tag

This visibility system is very flexible and allows you to build:

  • Apps like Patreon where only certain levels of users can see your content
  • Apps like Strava where it’s possible to share your activity with nobody, everyone or your followers
$feedsClient->addActivity(
    new \GetStream\GeneratedModels\AddActivityRequest(
        feeds: ['user:1'],
        type: 'post',
        text: 'Premium content',
        visibility: 'tag',
        visibilityTag: 'premium',
        userID: '<user id>'
    )
);
// Premium users can see full activity, others a preview

For all the details on tag visibility read the Membership levels guide.

© Getstream.io, Inc. All Rights Reserved.