Sharing a Feed

Making your feed private will make it only visible to you, while making it public will make it visible to the world. But what if we want to share a feed with one person, or a specific group of people?

You'll want to use Adafruit IO's feed sharing feature. Feed sharing allows you to invite someone to view a specified feed. This is a great feature for if you're building a project with multiple sensor nodes, but don't want to make your feed public to strangers, only your friends. 

Feed Invitations

Decided on which feed you'd like to share with somebody else? You'll first need to send them an invitation.

Navigate to the feed page for the feed which you'd like to share. Then, click the Sharing text on the sidebar

You'll be greeted with the Sharing Settings window. You can invite somebody you know using either their Adafruit IO Username or their personal email address.

You'll also be given two options for their access to your feed. If you give them Read access, they'll only be able to view the feed you share.

Want to give them the ability to read and publish data to your feed?

Selecting the Read + Write access level will give the user you invite the ability to both read from your feed and write to your feed. 

Once you have the email/username field filled, and the access level configured, go ahead and click Send Invitation. 

If the person you're sharing with does not have an Adafruit IO account associated with that email, don't worry! They'll be prompted to create one through the email.

Accepting a Shared Feed Request

Now it's the other person's turn. After you click Send Invitation, they should receive an email from Adafruit IO informing them that you've shared a feed with them. 

Clicking Review This Feed Share will show them the details of the share, their access level, and allow them to either accept, deny, or block the request. 

The Sharing Page

To see the available shared feeds, click the Home button, then the Sharing button on your Adafruit IO dashboard.  This is the sharing page - a central point for your Adafruit IO account's sharing information. 

You'll be presented with links to the feeds which you are currently sharing, the feeds which are shared by you, and a list of blocked users. 

Who Shares What?

All data rate usage comes from the publishing user.

Data rate usage for feeds is dictated by whomever is publishing to the feed. If you are sharing a feed, your data rate will remain unchanged until you publish (write) to it. If you have access to a shared feed with write access, publishing to the feed will effect your data rate usage, but not the rate usage of the person sharing the feed.

Social Web Service Security: Blocking, Ignoring and Unsubscribing

Because Adafruit IO is an open web service, we don't review every single feed sharing invitation before it's sent. In order to prevent repetitive unwelcome sharing invitations from anyone, we will always give you the ability to: ignore individual invites, block a user from being able to invite you to share, or unsubscribe from all sharing invitation emails.

When you ignore an invite, it will be cleared from your sharing page and the user who invited you won't be able to invite you to that feed again, but they will be able to invite you to share any other feed they own.

When you block a user, they will no longer be able to share any feeds with you at all. Users will never be explicitly informed that you have blocked them, but they may be able to infer it if they can't share anything with you. Sharing blocks are permanent until and unless you remove them.

Choosing to unsubscribe from sharing invitation emails will keep your inbox clean, so you'll have to visit your sharing page to see if you have any new sharing invitations.

Adjusting Access Levels

Need to adjust the access level a user has to a shared feed? You can this from the feed page's Sharing Settings window. The window shows the feed owner and the person you shared the feed with. Click Edit to allow you to adjust their feed access privileges. 

Now, let's modify their access level. Clicking on the dropdown will give the choice of Read or Read + WriteWhen you click save changes, Adafruit IO will apply a different access level to the account. 

Want to make sure they can't access the feed anymore? You can revoke their access by clicking the Delete button. 

Want to quickly change feed access levels of multiple feeds? On the sharing page, you can see a list of the feeds you are sharing. Clicking Edit will bring up a dropdown menu allowing you to select the shared access level.

Code Examples

Arduino

We've integrated feed sharing into the Adafruit IO Arduino library. Setting up a shared feed is similar to the process of setting up a regular feed, with just one change!

After you set the name of the feed (in this example, we're using feed-name). Then, set the owner of the feed (feedOwner):

AdafruitIO_Feed *sharedFeed = io.feed("FEED-NAME", "feedOwner");

Note: Make sure you know of the access-level you have to this feed. If you have Read-only access, you are not  able to write to the feed.  

Python

We've also updated the Adafruit IO Python client to include feed sharing.

Instead of subscribing to your own feed:

client.subscribe("io-feed")

We'll add the username as a second argument to the method, to subscribe to the feed belonging to the owner:

client.subscribe("io-feed", "io-feed-owner")

Feed sharing using the Adafruit IO Python client is not supported by the REST-based API client - only the MQTT client (mqtt_client) is supported. 

This guide was first published on Apr 20, 2015. It was last updated on Apr 20, 2015. This page (Sharing a Feed) was last updated on Aug 02, 2018.