Systems and methods for sharing content

Systems, methods, and non-transitory computer-readable media can determine a request to create a collaborative post, the request having been submitted by a first user of a social networking system. A determination can be made of at least one second user of the social networking system that was identified as a collaborating user, wherein the at least one second user is permitted to contribute to the collaborative post. The collaborative post can be generated based at least in part on content provided by the first user and the at least one second user. The collaborative post can be published through the social networking system.

FIELD OF THE INVENTION

The present technology relates to the field of content sharing. More particularly, the present technology relates to techniques for users to share content.

BACKGROUND

Users often utilize computing devices for a wide variety of purposes. Users can use their computing devices to, for example, interact with one another, access content, share content, and create content. In some cases, content can be provided by members of a social network. The content can include one or a combination of text, images, videos, and audio. The content may be published to the social network for consumption by others.

SUMMARY

Various embodiments of the present disclosure can include systems, methods, and non-transitory computer readable media configured to determine a request to create a collaborative post, the request having been submitted by a first user of a social networking system. A determination can be made of at least one second user of the social networking system that was identified as a collaborating user, wherein the at least one second user is permitted to contribute to the collaborative post. The collaborative post can be generated based at least in part on content provided by the first user and the at least one second user. The collaborative post can be published through the social networking system.

In an embodiment, the collaborative post includes one or more cards, each card being created by the first user or the at least one second user.

In an embodiment, each card includes text, visual content, or a combination thereof.

In an embodiment, generating the collaborative post includes determining at least one first card that was created by the first user for publication with the collaborative post and associating the at least one first card with the collaborative post.

In an embodiment, the systems, methods, and non-transitory computer readable media are further configured to determine one or more edits made to the at least one first card by the at least one second user and apply the one or more edits to the at least one first card, wherein the one or more edits are reflected in the published collaborative post.

In an embodiment, the one or more edits include at least one annotation added to the at least one first card by the at least one second user.

In an embodiment, the at least one annotation includes text and an avatar representing the at least one second user.

In an embodiment, generating the collaborative post includes determining at least one second card that was created by the at least one second user for publication with the collaborative post and associating the at least one second card with the collaborative post.

In an embodiment, the systems, methods, and non-transitory computer readable media are further configured to determine that the at least one second card was created after publication of the collaborative post and update the published collaborative post to include the at least one second card.

In an embodiment, the at least one second user is permitted to add content to the collaborative post even after the collaborative post is published to the social networking system.

DETAILED DESCRIPTION

Approaches for Sharing Content

As mentioned, users often utilize computing devices for a wide variety of purposes. Users can use their computing devices to, for example, interact with one another, access content, share content, and create content. In some cases, content can be provided by members of a social network. The content can include one or a combination of text, images, videos, and audio. The content may be published to the social network for consumption by others.

Under conventional approaches, users can confront various challenges when composing content to be shared through a content provider (e.g., a social networking system). In general, users of a social networking system may compose posts to be shared with other users through the social networking system. For example, users can typically compose such posts using a composer interface that includes a content field and a virtual keyboard. A user accessing the composer interface can create a post by entering information such as text or emojis using the virtual keyboard. The entered information can then be reflected in the content field. Once satisfied with the post, the user can select an option to share (or publish) the post through the social networking system. Such conventional approaches are generally unable to accommodate multiple users that seek to jointly compose a collaborative post. For example, under conventional approaches, multiple users that attended the same event would individually compose and share their own posts about the event. These posts may then be published separately to one or more content feeds for consumption. However, there may be instances where a single collaborative post that includes contributions from the multiple users is preferred. Accordingly, under conventional approaches, the user experience can suffer, thereby discouraging users from sharing content through the social networking system.

An improved approach rooted in computer technology overcomes the foregoing and other disadvantages associated with conventional approaches specifically arising in the realm of computer technology. In various embodiments, a composer interface for creating and sharing collaborative posts can be provided. In various embodiments, a collaborative post can include one or more cards that are created by one or more collaborating users. Each card can include content such as text, visual content (e.g., images, videos, stickers, etc.), audio content, or a combination thereof. Further, in some embodiments, collaborating users are permitted to interact with cards included in the collaborative post. For example, a second collaborating user can annotate a card that was created by a first collaborating user. In some embodiments, collaborating users can continue to update the collaborative post even after its publication through a social networking system. For example, collaborating users can continue adding new cards to the collaborative post or editing existing cards in the collaborative post after its publication. In this example, the published collaborative post can be updated as additional cards or edits to the collaborative post are submitted. More details relating to the disclosed technology are provided below.

FIG. 1illustrates an example system100including an example composer module102, according to an embodiment of the present disclosure. As shown in the example ofFIG. 1, the composer module102can include an interface module104, a post module106, and a collaborative post module108. In some instances, the example system100can include at least one data store112. The components (e.g., modules, elements, etc.) shown in this figure and all figures herein are exemplary only, and other implementations may include additional, fewer, integrated, or different components. Some components may not be shown so as not to obscure relevant details.

In some embodiments, the composer module102can be implemented, in part or in whole, as software, hardware, or any combination thereof. In general, a module as discussed herein can be associated with software, hardware, or any combination thereof. In some implementations, one or more functions, tasks, and/or operations of modules can be carried out or performed by software routines, software processes, hardware, and/or any combination thereof. In some cases, the composer module102or at least a portion thereof can be implemented using one or more computing devices or systems that include one or more servers, such as network servers or cloud servers. In some instances, the composer module102can, in part or in whole, be implemented within or configured to operate in conjunction with a social networking system (or service), such as the social networking system630ofFIG. 6. In some instances, the composer module102can be, in part or in whole, implemented within or configured to operate in conjunction or be integrated with a client computing device, such as the user device610ofFIG. 6. For example, the composer module102can be implemented as or within a dedicated application (e.g., app), a program, or an applet running on a user computing device or client computing system. The application incorporating or implementing instructions for performing some, or all, functionality of the composer module102can be created by a developer. The application can be provided to or maintained in a repository. In some cases, the application can be uploaded or otherwise transmitted over a network (e.g., Internet) to the repository. For example, a computing system (e.g., server) associated with or under control of the developer of the application can provide or transmit the application to the repository. The repository can include, for example, an “app” store in which the application can be maintained for access or download by a user. In response to a command by the user to download the application, the application can be provided or otherwise transmitted over a network from the repository to a computing device associated with the user. For example, a computing system (e.g., server) associated with or under control of an administrator of the repository can cause or permit the application to be transmitted to the computing device of the user so that the user can install and run the application. The developer of the application and the administrator of the repository can be different entities in some cases, but can be the same entity in other cases. It should be understood that many variations are possible.

The composer module102can be configured to communicate and/or operate with the at least one data store112, as shown in the example system100. The at least one data store112can be configured to store and maintain various types of data. For example, the data store112can store information describing various content that has been shared by users of a social networking system. In some implementations, the at least one data store112can store information associated with the social networking system (e.g., the social networking system630ofFIG. 6). The information associated with the social networking system can include data about users, social connections, social interactions, locations, geo-fenced areas, maps, places, events, pages, groups, posts, communications, content, feeds, account settings, privacy settings, a social graph, and various other types of data. In some implementations, the at least one data store112can store information associated with users, such as user identifiers, user information, profile information, user specified settings, content produced or posted by users, and various other types of user data.

In various embodiments, the interface module104can be configured to provide a composer interface. The composer interface can provide options for composing and sharing posts. In general, the composer interface may be presented through a display screen of a computing device. A user operating the computing device can interact with the composer interface using various touchscreen gestures or an external apparatus, for example. In some embodiments, the composer interface can include a content field, a virtual keyboard, and options for creating and sharing posts. For example, the composer interface can provide options for composing and sharing posts that are authored by a single user. In various embodiments, the composer interface can provide options for composing and sharing collaborative posts that are authored by two or more collaborating users. More details regarding the composer interface will be provided below with reference toFIGS. 3A-3F.

The post module106can be configured to provide options for composing and sharing posts (or content items) that are authored by a single user. These posts can include text, visual content (e.g., images, videos, graphical text, animated text, etc.), audio content, or a combination thereof. Further, such posts can be published in one or more content feeds that are accessible over a social networking system.

The collaborative post module108can be configured to provide options for composing and sharing collaborative posts (or collaborative content items) that are authored by two or more collaborating users. In some embodiments, a collaborative post can be composed of one or more cards. Further, each card can be created by a collaborating user and may include text, visual content (e.g., images, videos, graphical text, animated text, etc.), audio content, or a combination thereof. More details regarding the collaborative post module108will be provided below with reference toFIG. 2.

FIG. 2illustrates an example collaborative post module202, according to an embodiment of the present disclosure. The collaborative post module202can provide options for composing and sharing collaborative posts, for example, through a social networking system. In some embodiments, the collaborative post module108ofFIG. 1can be implemented with the collaborative post module202. As shown in the example ofFIG. 2, the collaborative post module202can include a collaborator module204, a card module206, and a publication module208.

The collaborator module204can provide options for identifying users that can contribute to a collaborative post. In some embodiments, a user can select an option to create a collaborative post with one or more other specified users. For example, the user can tag one or more other collaborating users that may want to contribute to the collaborative post. In some embodiments, the collaborator module204can send notifications to the tagged users to inform them of the collaborative post. The tagged users can then access a composer interface to create content that can be published with the collaborative post.

The card module206can provide collaborating users with options for contributing to a collaborative post. For example, in some embodiments, the card module206can provide an option to create cards that can be included with the collaborative post. In some embodiments, each card can be composed of text, visual content (e.g., images, videos, graphical text, animated text, etc.), audio content, or a combination thereof. For example, a first collaborating user can create a card that includes images taken at a company event. Similarly, a second collaborating user can create a different card that includes text and videos of the company event. In various embodiments, collaborating users can create and add cards to the collaborative post in parallel. Once created, each card can be published with the collaborative post, for example, through a social networking system (e.g., social networking system630ofFIG. 6). In various embodiments, users of the social networking system can access the collaborative post to view and comment on the collaborative post and/or cards published with the collaborative post. In some embodiments, the card module206can provide an option to interact with cards that have been published with the collaborative post. For example, a second collaborating user can add new content to a card that was created by a first collaborating user. In some embodiments, such interactions may involve adding annotations or other visual content to a card.

The publication module208can provide options for publishing collaborative posts. In various embodiments, the publication module208provides an option for publishing a collaborative post to a social networking system (e.g., social networking system630ofFIG. 6). For example, a user that initially created a collaborative post can select this option to publish the collaborative post to the social networking system. There may be instances where a user publishes a collaborative post before other collaborating users have published their content for the collaborative post. For instance, a collaborative post may be published before collaborating users have submitted their cards for publication with the collaborative post. In another example, a collaborative post may be published before collaborating users have submitted their edits (e.g., annotations) to cards published with the collaborative post. In various embodiments, to accommodate such asynchronized publication of content, the publication module208permits collaborating users to publish their cards and edits to a collaborative post even after its publication. In such embodiments, the publication module208can continually update the collaborative post as collaborating users submit cards and edits for publication with the collaborative post. These continuous updates may be performed in real-time or near real-time.

FIG. 3Aillustrates an example composer interface304, according to an embodiment of the present disclosure. In this example, the interface304is presented through a display screen of a computing device302that is configured to interact with a social networking system (e.g., social networking system630ofFIG. 6). Further, the interface304may be provided through an application (e.g., a web browser, a social networking application, etc.) running on the computing device302. The interface304includes options for creating and sharing collaborative posts. For example, the interface304includes an option306for creating cards to be included in a collaborative post. As mentioned, in some embodiments, users can contribute to a collaborative post by creating cards that are published with the collaborative post. The interface304also includes an option308for adding users as collaborators that can contribute to the collaborative post. For example, the user operating the computing device302can select the option308to identify (or tag) collaborating users as illustrated in the example ofFIG. 3B. As shown inFIG. 3B, the user can search for users to add as collaborators using a search field310. In some embodiments, a list of potential collaborators312can be suggested to the user. In this example, a first collaborating user “Christophe” and a second collaborating user “Page” have been tagged. Once collaborators are identified, the user operating the computing device302and the tagged collaborators can add content to the collaborative post. For example, as shown inFIG. 3C, the user operating the computing device302can select an option (or perform a gesture) to add a card314to the collaborative post. As mentioned, the card314can include text, visual media, audio content, or a combination thereof. In the example ofFIG. 3D, the user has selected an image316to include in the card314. The image316is then shown within the card314, as illustrated in the example ofFIG. 3E. The user can also edit the card314using options318. For example, the options318can be selected to add text and other visual content (e.g., annotations, stickers) to the card314. InFIG. 3E, the user has added an annotation320(“Great coffee!”) to the card314. In some embodiments, as shown, an annotation can include text and an avatar representing a user that created the annotation. In various embodiments, the card314can similarly be edited by the tagged collaborators. For example,FIG. 3Fillustrates an annotation322(“Been there!”) that was added to the card314by a collaborating user. When ready for publication, the user operating the computing device302can select an option to publish the collaborating post along with the card314to the social networking system. As mentioned, the tagged collaborators can continue adding their own cards and edits to the collaborative post even after its publication.

FIG. 4Aillustrates an example interface404, according to an embodiment of the present disclosure. In this example, the interface404is presented through a display screen of a computing device402that is configured to interact with a social networking system. Further, the interface404may be provided through an application (e.g., a web browser, a social networking application, etc.) running on the computing device402. In the example ofFIG. 4A, the interface404is being used to access a first card406of a collaborative post. In this example, the first card406includes visual content and annotations408added by collaborating users. A user operating the computing device402can select options410(e.g., like, comment, share) to interact with the collaborative post. In various embodiments, the user can access additional cards included in the collaborative post as illustrated in the example ofFIG. 4B. For example, the user can select an option (or perform a gesture) to access another card412that was added to the collaborative post by a different collaborating user.

FIG. 5illustrates an example method500, according to an embodiment of the present disclosure. It should be appreciated that there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, within the scope of the various embodiments discussed herein unless otherwise stated.

At block502, a request to create a collaborative post can be determined, the request having been submitted by a first user of a social networking system. At block504, at least one second user of the social networking system that was identified as a collaborating user can be determined. The at least one second user is permitted to contribute to the collaborative post. At block506, the collaborative post can be generated based at least in part on content provided by the first user and the at least one second user. At block508, the collaborative post can be published through the social networking system.

It is contemplated that there can be many other uses, applications, and/or variations associated with the various embodiments of the present disclosure. For example, in some cases, user can choose whether or not to opt-in to utilize the disclosed technology. The disclosed technology can also ensure that various privacy settings and preferences are maintained and can prevent private information from being divulged. In another example, various embodiments of the present disclosure can learn, improve, and/or be refined over time.

Social Networking System—Example Implementation

The user device610comprises one or more computing devices (or systems) that can receive input from a user and transmit and receive data via the network650. In one embodiment, the user device610is a conventional computer system executing, for example, a Microsoft Windows compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the user device610can be a computing device or a device having computer functionality, such as a smart-phone, a tablet, a personal digital assistant (PDA), a mobile telephone, a laptop computer, a wearable device (e.g., a pair of glasses, a watch, a bracelet, etc.), a camera, an appliance, etc. The user device610is configured to communicate via the network650. The user device610can execute an application, for example, a browser application that allows a user of the user device610to interact with the social networking system630. In another embodiment, the user device610interacts with the social networking system630through an application programming interface (API) provided by the native operating system of the user device610, such as iOS and ANDROID. The user device610is configured to communicate with the external system620and the social networking system630via the network650, which may comprise any combination of local area and/or wide area networks, using wired and/or wireless communication systems.

The external system620includes one or more web servers that include one or more web pages622a,622b, which are communicated to the user device610using the network650. The external system620is separate from the social networking system630. For example, the external system620is associated with a first domain, while the social networking system630is associated with a separate social networking domain. Web pages622a,622b, included in the external system620, comprise markup language documents614identifying content and including instructions specifying formatting or presentation of the identified content. As discussed previously, it should be appreciated that there can be many variations or other possibilities.

In some embodiments, the social networking system630can include a composer module646. The composer module646can, for example, be implemented as the composer module102ofFIG. 1. In some embodiments, the composer module646, in whole or in part, is additionally or alternatively implemented in the user device610. As discussed previously, it should be appreciated that there can be many variations or other possibilities.

Hardware Implementation