Patent Publication Number: US-10334053-B2

Title: Private communication sessions in an online social networking system

Description:
BACKGROUND 
     This invention relates generally to online social networking systems, and in particular to initiation of private communication sessions via client devices within a social networking system. 
     Online social networking systems often present electronic media content items to users. For example, a social networking system may present an online news article in a newsfeed. Such content items are viewed by users on client devices, for example, a laptop or a mobile device. Social networking systems allow users to connect and interact with each other, and allow users to post and interact with content items displayed by the system. For example, users may interact with content items on a social networking system by posting comments related to the content item. 
     Conventional techniques for presenting user interactions with content items to other users may display a user&#39;s comments to all other users of the social networking system. Thus, users sometimes must scroll through a long list of comments on a content item without a way to readily focus on certain user&#39;s comments. In addition, conventional techniques may require a user to use a separate messaging application for private messages, thereby providing more limited user experience. A user may be less likely to engage with the user&#39;s social network if certain types of communications require extra steps by the user to access a separate application, or if otherwise it is not quick and easy for the user to communicate in the desired way with other users. 
     SUMMARY 
     A social networking system allows users to have private, side conversations with other users when commenting on content items posted in a social networking system, such that the side conversation is not available to the general public but is available to the users involved in the conversation. For example, some content items may be publicly available such that any user of the social networking system can provide comments on the content item, and the content item may have hundreds of comments by users that do not know one another. The social networking system allows for users to thus also provide comments in a more private way that are only visible to selected connections of the user in the social networking system. 
     In an embodiment, the social networking system receives user interactions with a content item from client devices of users of the social networking system. The system provides for display, on each client device, a public user interface including at least some of the received user interactions with the content item. The system receives, from a client device of a first user, a request to initiate a private session associated with the content item. The request identifies a subset of the users including the first user who will be involved in the conversation associated with the private session. The system receives, within the private session, user interactions with the content item from client devices of the subset of the users, such as user comments on the content item by each of the users involved in the private session. The system provides for display on each client device of the subset of the users a private user interface for interacting with the content item. The private user interface displays the user interactions received within the private session. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a system environment and architecture of a social networking system, in accordance with an embodiment. 
         FIG. 2  is an illustration of the process for initiating a private session for content items in a social networking system, in accordance with an embodiment. 
         FIG. 3  is an illustration of subsets of users of the social networking system, in accordance with an embodiment. 
         FIG. 4  is an illustration of a public user interface for user interactions with a content item displayed on a client device, in accordance with an embodiment. 
         FIG. 5  is an illustration of a private user interface displayed on a client device of a user of a social networking system, in accordance with an embodiment. 
         FIG. 6  is an illustration of the process for sending real-time user interactions with content items in a social networking system, in accordance with an embodiment. 
         FIG. 7  is an illustration of a content item displayed on a client device of a user of a social networking system, in accordance with an embodiment. 
         FIG. 8  is an illustration of a second user connected to a first user within the social networking system, in accordance with an embodiment. 
         FIG. 9  is an illustration of a widget identifying the second user displayed on a client device of the first user of the social networking system, in accordance with an embodiment. 
         FIG. 10  is an illustration of a widget identifying a type of emotion associated with a user interaction displayed on a client device of a user of the social networking system, in accordance with an embodiment. 
         FIG. 11  is an illustration of a field for receiving comments by the first user on a client device, in accordance with an embodiment. 
     
    
    
     The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein. 
     DETAILED DESCRIPTION 
     A social networking system provides content items for display on a client device, such as on a newsfeed or a “permalink” (a view of the content item itself, such as a separate page that the user is taken to when selecting a content item in the newsfeed for viewing, where the separate page includes only that content item and associated comments/reactions). Associated with each content item, the system configures for display on the client device one or more user interfaces for interacting with other client devices about the content item via communication sessions. Each user interface allows a user to switch between different sessions (conversations) involving different groups of other users of the social networking system. Each content item may have one or more messages in a public session configured for display on the public user interface associated with the content item. The public user interface includes for display all comments that are marked public and posted in the public session with regard to the content item. 
     The content item is also associated with one or more private user interfaces for communicating via private sessions, in which the user can post comments to a social networking connection or a group of social networking connection that are a subset of the users who can view the comments in the public user interface. The system may receive, from a user viewing a content item, a selection of one of the private user interfaces for communicating via private sessions. The social networking system provides for display to the user messages amongst the user and the social networking connection or the group of social networking connection in a private user interface. For example, the private user interface could be a tab in or adjacent the content item that identifies the users in the private session. Similarly, there can be a public tab that includes all comments on the content item. Thus, the viewing user can switch back and forth between the public comments and the private conversations the user is having with one or more groups of users regarding the content item. 
     When the social networking system receives a user interaction from a client device requesting a new private session, the system configures for display messages from one or more social networking connections of the user who are to be included in the private session via the private user interface. The system receives messages from the user via the private user interface on the client device and provides these for display to the other one or more users in the private session separately viewing the content item. The system may also receive a request from a new user to initiate a private session with the user related to a content item. The system provides a notification to the user regarding the initiation of the new private session and configures for display a new private user interface on the user&#39;s client device. 
     System Environment and Architecture 
       FIG. 1  is a block diagram of a system environment and architecture of a social networking system  110 , in accordance with an embodiment. The system environment shown in  FIG. 1  includes one or more client devices  100 , a network  105 , one or more third-party systems  112 , and the social networking system  110 .  FIG. 1  and the other figures use like reference numerals to identify like elements. A letter after a reference numeral, such as “ 100   a ,” indicates that the text refers specifically to the element having that particular reference numeral. A reference numeral in the text without a following letter, such as “ 100 ,” refers to any or all of the elements in the figures bearing that reference numeral, e.g., “ 100 ” in the text refers to reference numerals “ 100   a ” and/or “ 100   b ” in the figures. In alternative configurations, different and/or additional components may be included in the system environment. The embodiments described herein can be adapted to online systems that are not social networking systems. 
     The social networking system  110  shown in  FIG. 1  sends content items associated with users of the social networking system  110  for display on client devices  100  of the users of the social networking system  100 . The client devices  100  are one or more computing devices capable of receiving user input as well as transmitting and/or receiving data via the network  105 . In one embodiment, a client device  100  is a conventional computer system, such as a desktop or laptop computer. Alternatively, a client device  100  may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone or another suitable device. Each client device  100  is configured to communicate via the network  105 . In one embodiment, a client device  100  executes an application allowing a user of the client device  100  to interact with the social networking system  110 . For example, a client device  110  executes a browser application to enable interaction between the client device  100  and the social networking system  110  via the network  105 . In another embodiment, a client device  100  interacts with the social networking system  110  through an application programming interface (API) running on a native operating system of the client device  100 , such as IOS® or ANDROID™. 
     The network  105  may comprise any combination of local area and wide area networks employing wired or wireless communication links. In one embodiment, the network  105  uses standard communications technologies and protocols. For example, the network  105  includes communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, code division multiple access (CDMA), digital subscriber line (DSL), etc. Examples of networking protocols used for communicating via the network  105  include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over the network  105  may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML). In some embodiments, all or some of the communication links of the network  105  may be encrypted using any suitable technique. 
     One or more third party systems  112  may be coupled to the network  105  for communicating with the social networking system  110 . In one embodiment, a third party system  112  is an application provider communicating information describing applications for execution by a client device  100  or communicating data to client devices  100  for use by an application executing on the client device. In other embodiments, a third party system  112  provides content or other information for presentation via a client device  100 . A third party website  112  may also communicate information to the social networking system  110 , such as advertisements, content, or information about an application provided by the third party website  112 . 
     The social networking system  110  shown in  FIG. 1  includes a user profile store  115 , a content store  120 , an edge store  125 , a user interaction store  130 , a user interaction manager  135 , a newsfeed manager  145 , and a user interface server  140 . In other embodiments, the social networking system  110  may include additional, fewer, or different components for various applications. Conventional components such as network interfaces, security functions, load balancers, failover servers, management and network operations consoles, and the like are not shown so as to not obscure the details of the system architecture. 
     Each user of the social networking system  110  is associated with a user profile, which is stored in the user profile store  115 . A user profile includes declarative information about the user that was explicitly shared by the user and may also include profile information inferred by the social networking system  110 . In one embodiment, a user profile includes multiple data fields, each describing one or more attributes of the corresponding user of the social networking system  110 . Examples of information stored in a user profile include biographic, demographic, and other types of descriptive information, such as user profile images, work experience, educational history, gender, hobbies or preferences, location and the like. A user profile may also store other information provided by the user, for example, images or videos. In certain embodiments, user profile images of users may be tagged with identification information of users of the social networking system  110 . A user profile in the user profile store  115  may also maintain references to actions by the corresponding user performed on content items in the content store  120  and stored in the user interaction store  130 . 
     In embodiments, the user profile store  115  may include, for each user, an avatar, a screenname, and the user&#39;s real name. An avatar is an icon or figure representing a particular user in computer games, Internet forums, social networking systems, etc. A screenname is a unique sequence of characters that a user may choose to use for identification purposes when interacting with others online, as in computer games, instant messaging, forums, and via the social networking system  110 . 
     The social networking system  110  may continuously update the user profile for a user with the geolocation of the user&#39;s client device  100 . A user&#39;s geolocation may be determined by the social networking system  110  based on information sent by a client device&#39;s GPS chip and satellite data, which mapping services can map. When a GPS signal is unavailable, the social networking system  110  may use information from cell towers to triangulate a client device&#39;s position or GPS and cell site triangulation (and in some instances, local Wi-Fi networks) in combination to zero in on the location of the client device  100 ; this arrangement is called Assisted GPS (A-GPS). The social networking system  110  may also determine the geolocation distance between two client devices  100   a  and  100   b  by using the Haversine formula to calculate the great-circle distance between two points, as a straight line distance between the two client devices, which are associated with geolocation coordinates in terms of latitude and longitude, etc. 
     The content store  120  stores electronic media objects, which each represent various types of content. In one embodiment, objects in the content store  120  represent single pieces of content or content “items.” Examples of content types represented by a content item include a page post, a status update, a photograph, a video, a link, a shared content item, a gaming application achievement, a check-in event at a local business, a brand page, etc. Social networking system  110  users may create content items stored by the content store  120 , such as status updates, photos tagged by users to be associated with other content items in the social networking system, events, groups or applications. In some embodiments, content items are received from third-party applications or third-party applications separate from the social networking system  110 . Users of the social networking system  110  are encouraged to communicate with each other by posting content items of various types of media through various sessions. This increases the amount of interaction of users with each other and increases the frequency with which users interact within the social networking system  110 . 
     The user interaction manager  135  receives communications about user interactions internal to and/or external to the social networking system  110 , populating the user interaction store  130  with information about user interactions. Interactions received by the user interaction manager  135  may include expressing an emotional preference for a content item by clicking on an icon representing a type of emotion, e.g., “like,” “love,” “haha,” “wow,” “sad,” “angry,” etc., sharing a content item from a client device  100   a  by sending it to the client device  100   b  of another user, commenting on a content item, checking-in to a physical location linked to a content item, joining a user group linked to a content item, adding a connection to another user, sending a message to another user, uploading an image, reading a message from another user, viewing content associated with another user, attending an event posted by another user, among others. In addition, a number of actions may involve a content item and one or more particular users, so these actions are associated with those users as well and stored in the user interaction store  130 . 
     The user interaction manager  135  may determine the number of users N v  of the social networking system currently viewing a particular content item from the received communications about user interactions internal to and/or external to the social networking system  110 . The user interaction manager  135  may determine the time a user performed an interaction by a timestamp in the data representing the interaction sent by the client device  100  to the social networking system  110 . The user interaction manager  135  may identify users within the social networking system  110  who each performed a user interaction with a content item within a certain time period. 
     The user interaction store  130  may be used by the social networking system  110  to track user interactions on the social networking system  110 , as well as interactions on third party systems  112  that communicate information to the social networking system  110 . Users may interact with various content items on the social networking system  110 , and information describing these interactions is stored in the user interaction store  130 . Examples of interactions with content items include: commenting on posts, sharing links, and checking-in to physical locations via a mobile device, accessing content items, etc. Additional examples of interactions with content items on the social networking system  110  that are included in the action store  130  include commenting on a photo album, communicating with a user, establishing a connection with an content item, joining an event to a calendar, joining a group, creating an event, authorizing an application, using an application, expressing a preference for an content item (“liking” the content item) and engaging in a transaction. 
     Each interaction of a user with a content item may have a type of emotion associated with the user interaction, e.g., “like,” “love,” “haha,” “wow,” “sad,” “angry,” etc. The user interaction store  130  may store icons corresponding to emotion types, where each icon includes information identifying an emotion type. Additionally, the user interaction store  130  may record a user&#39;s interactions with other applications operating on the social networking system  110 . In some embodiments, data from the user interaction store  130  is used to infer interests or preferences of a user, augmenting the interests included in the user&#39;s user profile and allowing a more complete understanding of user preferences. 
     The social networking system  110  may determine the type of emotion associated with a user interaction with a content item performed by a user by storing a mapping from user interactions to types of emotions associated with the user interactions. For example a user interaction including a user clicking on a “heart” icon may map to an emotion type of “love.” The social networking system  110  may store the mapping from user interactions to types of emotions as a mapping function, a mapping diagram, or a relational database, as described below with reference to  FIGS. 7 and 8 . The social networking system  110  may receive, from a client device  100  of the user, the user interaction with the content item performed by the user. The social networking system  110  may identify the type of emotion corresponding to the received user interaction with the content item performed by the user based on the mapping. 
     In one embodiment, an edge store  125  stores information describing connections between users and other content items on the social networking system  110  as edges. Some edges may be defined by users, allowing users to specify their relationships with other users. For example, users may generate edges with other users that parallel the users&#39; real-life relationships, such as friends, co-workers, partners, and so forth. Other edges are generated when users interact with content items in the social networking system  110 , such as when a user interacts with a content item by expressing a preference for the content item, where a type of emotion is associated with the user interaction, e.g., “like,” “love,” “haha,” “wow,” “sad,” “angry,” etc. Other edges are generated when users interact with content items in the social networking system  110 , such as expressing interest in a page on the social networking system, sharing a link with other users of the social networking system, and commenting on posts made by other users of the social networking system. 
     In one embodiment, an edge may include various features each representing characteristics of interactions between users, interactions between users and content item, or interactions between content items. For example, features included in an edge describe the number of past interactions I 12  between a first user (client device  100   a ) and a second user (client device  100   b ), whether the number of past interactions I 12  exceed a threshold number (I 12 &gt;T 12 ), the rate of interaction between two users, how recently two users have interacted with each other, the rate or amount of information retrieved by one user about an content item, or the number and types of comments posted by a user about an content item. The features may also represent information describing a particular content item or user. For example, a feature may represent the level of interest that a user has in a particular topic, the rate at which the user logs into the social networking system  110 , or information describing demographic information about a user. Each feature may be associated with a source content item or user, a target content item or user, and a feature value. A feature may be specified as an expression based on values describing the source content item or user, the target content item or user, or interactions between the source content item or user and target content item or user; hence, an edge may be represented as one or more feature expressions. 
     The edge store  135  also stores information about edges, such as affinity scores for content items, interests, and other users. Affinity scores, or “affinities,” may be computed by the social networking system  110  over time to approximate a user&#39;s affinity for a type of emotion associated with user interactions, an content item, interest, and other users in the social networking system  110  based on the actions performed by the user. For example, if there are six types of emotion associated with user interactions—“like,” “love,” “haha,” “wow,” “sad,” and “angry”—the edge store  135  may determine a user&#39;s affinity for the type of emotion “like” as the number of times the user interacted with content items by using the “like” emotion type (N like ) divided by the total number of times the user interacted with content items across all six reaction types (N). The edge store  135  may determine the user&#39;s affinity for the emotion type “like” as N like /N. The social networking system  110  may determine whether the measure of affinity of the user for a reaction type (e.g., “like”) exceeds a threshold number T, i.e., whether (N like /N)&gt;T. 
     The social networking system  110  may determine the topic of a content item from keywords in the content item. The topics of the social networking system  110  may be specified by a third-party system  112  or extracted by a topic extraction engine of the social networking system  110 . In one embodiment, the social networking system  110  includes a topic extraction engine, which identifies one or more topics associated with content items in the content store  120 . To identify topics associated with content items, the topic extraction engine identifies anchor terms included in a content item and determines a meaning of the anchor terms as further described in U.S. application Ser. No. 13/167,701, filed Jun. 24, 2011, which is hereby incorporated by reference in its entirety. For example, the topic extraction engine determines one or more topics associated with a content item maintained in the content store  120 . The one or more topics associated with a content item are stored in the content store  120 . Structured information associated with a content item may also be used to extract a topic associated with the content item. 
     The social networking system  100  may select two users based on an affinity between the first user (client device  100   a ) and the second user (client device  100   b ) based on their interactions with content items of a particular topic. The social networking system  100  may determine the number of past user interactions between users and content items corresponding to the topic. The social networking system  100  may select the user having the highest number of past user interactions between the user and content items corresponding to the topic. 
     Computation of affinity is further described in U.S. patent application Ser. No. 12/978,265, filed on Dec. 23, 2010, U.S. patent application Ser. No. 13/690,254, filed on Nov. 30, 2012, U.S. patent application Ser. No. 13/689,969, filed on Nov. 30, 2012, and U.S. patent application Ser. No. 13/690,088, filed on Nov. 30, 2012, each of which is hereby incorporated by reference in its entirety. Multiple interactions between a user and a specific content item may be stored as a single edge in the edge store  125 . Alternatively, each interaction between a user and a specific content item is stored as a separate edge. In some embodiments, connections between users may be stored in the user profile store  115 , or the user profile store  115  may access the edge store  125  to determine connections between users. 
     The newsfeed manager  145  may generate content items for presentation to a user based on information in the user interaction store  130  and in the edge store  125  or may select candidate content items included in the content store  120 . One or more of the candidate content items are selected and presented to the user by the newsfeed manager  145 . For example, the newsfeed manager  145  receives a request to present one or more content items to a first user associated with a client device  100   a . The newsfeed manager  145  accesses one or more of the user profile store  115 , the content store  120 , the user interaction store  130 , and the edge store  125  to retrieve information about the first user (client device  100   a ). Stories or other data associated with users connected to the first user (client device  100   a ), e.g., a second user associated with a client device  100   b , may be retrieved. The retrieved content items are analyzed by the newsfeed manager  145  to identify content likely to be relevant to the first user. For example, content items associated with users not connected to the first user or content items associated with users for which the first user has less than a threshold affinity are discarded. Based on various criteria, the newsfeed manager  145  selects one or more of the candidate content items for presentation to the first user. 
     The newsfeed manager  145  may also determine the order in which selected content items are presented via the newsfeed. For example, the newsfeed manager  145  determines that a user has a highest affinity for a specific user and increases the number of content items in the newsfeed associated with the specific user or modifies the positions in the newsfeed where content items associated with the specific user are presented. The newsfeed manager  145  may also account for actions by a user indicating a preference for topics of content items and selects content items having the same, or similar, topics for inclusion in the newsfeed. Additionally, the newsfeed manager  145  may analyze content items received by social networking system  110  from various users and obtain information about user preferences or interactions from the analyzed content items. This information may be used to refine subsequent selection of content items for newsfeeds presented to various users. 
     The user interface server  140  links the social networking system  110  via the network  105  to the one or more client devices  100 , as well as to the one or more third party systems  112 . The user interface server  140  serves web pages, as well as other web-related content, such as JAVA®, FLASH®, XML and so forth. The user interface server  140  may receive and route messages between the social networking system  110  and the client device  100 , for example, instant messages, queued messages (e.g., email), text messages, short message service (SMS) messages, or messages sent using any other suitable messaging technique. A user may send a request to the user interface server  140  to upload information (e.g., images or videos) that are stored in the content store  120 . Additionally, the user interface server  140  may provide application programming interface (API) functionality to send data directly to native client device operating systems, such as IOS®, ANDROID™, WEBOS® or RIM®. 
     The user interface server  140  generates user interfaces, such as web pages, with content from the social networking system  110 . The user interfaces are displayed to the user through a client device  100  and network  105 . The user interfaces provided by the user interface server  140  allows a user to generate content items and interact with content items stored by the content store  120 . For example, a user interface may provide a method for a user to provide text, pictures, videos, links, and advertisements to be used to generate content items. The user interface server  140  configures a user interface based on the client device  100  used to present it. For example, a user interface for a smartphone with a touchscreen may be configured differently from a user interface for a web browser on a computer. 
     Process for Initiating a Private Session 
       FIG. 2  is an illustration of the process for initiating a private session for content items in the social networking system  110 , in accordance with an embodiment. In some embodiments, the process may have different and/or additional steps than those described in conjunction with  FIG. 2 . Steps of the process may be performed in different orders than the order described in conjunction with  FIG. 2 . Some steps may be executed in parallel. Alternatively, some of the steps may be executed in parallel and some steps executed sequentially. Alternatively, some steps may execute in a pipelined fashion such that execution of a step is started before the execution of a previous step. 
     The social networking system  110  sends  200 , for display on client devices  100  of users of the social networking system  110 , a content item amongst a plurality of content items associated with the users. The social networking system  110  receives  205  user interactions with the content item from the client devices  100  of the users. The social networking system  110  receives  210 , from a client device  100   a  of a first user of the users of the social networking system  110 , a selection of the content item to view. 
     In response to the selection, the social networking system  110  provides for display  215  on the client device  100   a  of the first user a public user interface displaying at least some of the received user interactions with the content item. The social networking system  110  receives  220 , from the client device of the first user, a request to initiate a private session associated with the content item. The request identifies a subset of the users including the first user. 
     In response to the request from the first user, the social networking system  110  provides for display  225  on the client device  100   a  of the first user a private user interface for interacting with the content item by the identified subset of users. The social networking system  110  receives  230 , within the private session, user interactions with the content item from client devices  100  of the subset of the users. The social networking system  110  provides for display  235  on the client device  100   a  of the first user, the received user interactions by the subset of users in the private user interface. The private user interface is configured to allow the first user to select between the public user interface and the private user interface. 
     Subsets of Social Networking Users 
       FIG. 3  is an illustration of subsets of users of the social networking system  110 , in accordance with an embodiment. The outer ellipse illustrates the users  300  of the social networking system  110 . The smaller ellipses within the outer ellipse illustrate subsets of users, e.g., subset  302  of users includes user  314  and user  316 ; subset  304  includes users  324  and  328 ; and subset  306  includes user  328  and user  326 . Some users, e.g., user  328 , may be in two subsets, e.g., subset  304  and subset  306 , which intersect. Subset of users  308  includes user  336 , user  338 , user  342 , and user  346 . Subset of users  310  includes user  338 , user  342 , and user  340 . Subset of users  312  includes user  344 , user  342 , and user  346 . Some users, e.g., user  342 , may be in three or more subsets, e.g., subset  308 , subset  310 , and subset  312 . Some users, e.g., users  318 ,  320 ,  322 ,  330 ,  332 , and  334 , may not be in any subset. 
     In an embodiment, a subset of the users includes only social networking connections of the other users in the subset. For example, subset  302  may include users  314  and  316  only if user  316  is a social networking connection of user  314 . In an embodiment, a user in a subset may be denoted as a first user and the subset may include other users only if they are social networking connections of the first user. For example, user  324  in subset  304  may be denoted as a first user. The user  328  may be included in subset  304  only if user  328  is a social networking connection of user  324 . User  326  may not be included in subset  304  even if user  326  is a social networking connection of user  328  because user  326  is not a social networking connection of the user  324  (denoted as the first user). 
     In an embodiment, the social networking system  110  may provide a recommended subset of the users  300  to the first user. For example, the social networking system  110  may provide a recommended subset of the users to a user  336  who has been denoted as a first user. The edge store  135  may, for a social networking connection c of a plurality of social networking connections of the first user  336 , determine an affinity between the first user  336  and the social networking connection c of the first user as A 336-c . Responsive to the affinity A 336-c  exceeding a threshold T, the social networking system  110  may add the social networking connection c to the recommended subset of the users. For example, if the affinity A 336-338  between the first user  336  and the user  338  (who is a social networking connection of user  336 ) exceeds T, user  338  is added to the subset  308 . User  330  who may also be a social networking connection of user  336  may not be added to subset  308  because the affinity A 336-330  between the first user  336  and the user  330  does not exceed T. 
     In an embodiment, the edge store  135  may, for each connection c of the social networking connections of a first user u, determine an affinity A c-k  between the social networking connection c of the first user u and a content item k that both users are viewing. Responsive to the affinity A c-k  exceeding a threshold T, the social networking system  110  may add the social networking connection c to the recommended subset of the users. 
     The social networking system  110  may also use the determination of such affinities by the edge store  135  to send a content item to a user who would not normally see it in their newsfeed created by the newsfeed manager  145 . In embodiments, the social networking system  110  may create a ranking for content items for a user  314  based on the affinity A 314-k  of the user  314  for the content items k. The newsfeed manager  145  may normally send only certain content items having a higher ranking to the user  314  via the newsfeed of the user  314 . The social networking system  110  may also create a ranking for social networking connections c of the user  314  based on affinities between the user  314  and the social networking connections c, denoted by A 314-c . When there is a low affinity A 316-k  between another user  316  (who is a social networking connection of user  314 ) and a content item k, the content item k may not normally be sent to the user  316  in the newsfeed of the user  316 . But in cases where there is a high affinity A 314-316  between the user  314  and his or her social networking connection  316 , and a high affinity between the user  314  and the content item k, but a low affinity between the connection user  316  and content item k, the social networking system  110  may modify the rankings and send the content item k to user  316  in the newsfeed of the user  316 . 
     In embodiments, the social networking system  110  may also use the determination of such affinities by the edge store  135  to recommend users who are not social networking connections to become social networking connections of each other. For example, when there is a low affinity A 314-316  between two users  314  and  316  (who are not social networking connections), the user  316  may not normally be recommended to the user  314 . But in cases where there are high affinities A 314-k  and A 316-k  between the user  314  and the content item k, and between the user  316  and the content item k, the social networking system  110  may modify the rankings and recommend the user  316  to the user  316  in a recommended subset of users. The social networking system  110  may create a triangle of edges (where each edge represents an affinity value) between two users and a content item, and increase the affinity value of an edge if the affinity values of the other two edges are high. For example, the first edge of the triangle denotes the affinity between user  314  and content item k, the second edge of the triangle denotes the affinity between user  316  and content item k, and the third edge of the triangle denotes the affinity between user  314  and user  316 . If any two edges have a high affinity above a threshold, the value on the third edge may be ignored or incremented by the social networking system  110 . 
     Public User Interface for User Interactions with Content Item Displayed on Client Device 
       FIG. 4  is an illustration of a public user interface for user interactions with a content item  405  displayed on a client device  100   a  of a user of a social networking system  110 , in accordance with an embodiment. The client device  100   a  of the first user includes a display surface  440 , a bezel  445 , and a scrollbar  450  displayed on the display surface  440 . The display surface  440  is the physical area of the client device  100   a  where content items, e.g.,  405 , from the social networking system  110  may be displayed. 
     The display surface  440  may be a liquid crystal display (LCD), organic light-emitting diode (OLED), active-matrix OLED (AMOLED), etc. In an LCD display surface  440 , the light-modulating properties of liquid crystals display arbitrary images (as in a general-purpose computer display). In an OLED display surface  440 , an emissive electroluminescent layer (a film of organic compound) emits light in response to an electric current. In an AMOLED display surface  440 , an active matrix of OLED pixels that are deposited or integrated onto a TFT array generates light upon electrical activation. The bezel  445  shown in  FIG. 4  is a non-display area that surrounds the display surface  440 . The scrollbar  450  is a widget by which continuous text, pictures, or any other content items can be scrolled in a predetermined direction (up or down) on the display surface  440  so that all of the content items, e.g.,  405 , and user interactions (comments), e.g.,  455 ,  460 ,  465 , and  470 , etc., can be viewed, even if only a few of the user interactions, e.g.,  455 ,  460 , and  465 , can be fully seen on the display surface  440  at one time. 
     The social networking system  110  sends a content item  405  amongst a plurality of content items associated with the users, e.g.,  415 ,  420 ,  425 , and  430 , etc., of the social networking system  110  for display on client devices, e.g.,  100   a , of the users. The content item  405  includes an image  410 . The social networking system  110  receives user interactions, e.g.,  455 ,  460 ,  465 , and  470 , with the content item  405  from the client devices of the users. 
     The social networking system  110  receives, from a client device  100   a  of a first user of the users of the social networking system, a selection of the content item  405  to view. For example, the selection can be in the form of a tap on the content item by a finger of the user. The screen  440  may have a capacitive touch surface to measure this tap and associate it with the content item  405 . In response to the selection of the content item  405 , the social networking system  110  provides for display on the client device  100   a  of the first user a public user interface  400  displaying at least some of the received user interactions, e.g.,  455 ,  460 ,  465 , and  470 , with the content item  405 . The user interactions on the public user interface  400  are visible to any user viewing the content item  405  on his or her client device. 
     Private User Interface 
       FIG. 5  is an illustration of a private user interface  500  displayed on a client device  100   a  of a user of a social networking system  110 , in accordance with an embodiment. The private user interface, e.g.,  500 , is provided for display on the client devices of only those users, e.g., users  515 ,  520 , and  535 , who belong to a subset of users associated with a private session corresponding to the private user interface  500 . 
     In  FIG. 5 , the social networking system  110  receives, from a client device  100   a  of a first user  515  of the users of the social networking system  110 , a selection of a content item  405  to view, as described above with reference to  FIG. 4 . The social networking system  110  receives, from the client device  100   a  of the first user  515 , a request to initiate a private session associated with the content item  405 . The request identifies a subset of the users (e.g.,  515 ,  520 , and  535 , etc.) including the first user  515 . For example, the request may be made by the user  515  touching an icon marked “initiate private user interface” on the display screen  440  of the client device  100   a . The subset of the users (e.g.,  515 ,  520 , and  535 , etc.) may be identified by the user tapping on user names in a directory of social networking contacts of the user  515 . 
     In response to the request from the first user  515  on client device  100   a , the social networking system  110  provides for display on the client device  100   a  of the first user  515  a private user interface  500  for interacting with the content item by the identified subset of users  515 ,  520 , and  535 , etc. The social networking system  110  receives, within the private session, user interactions (e.g.,  550 ,  555 , and  560 ) with the content item from client devices of the subset of the users (e.g.,  515 ,  520 , and  535 , etc.). The social networking system  110  provides, for display on the client device  100   a  of the first user  515 , the received user interactions (e.g.,  550 ,  555 , and  560 ) by the subset of users  515 ,  520 , and  535  in the private user interface  500 . The private user interface  500  is configured to allow the first user to select between the public user interface and the private user interface  500 . The selection may be made by, for example, the user tapping on an icon corresponding to each interface. For example icon  525  corresponds to the private user interface  500 . The icon  530  corresponds to a public user interface. The icons  540  and  545  correspond to private user interfaces initiated by other users of the social networking system. 
     The social networking system  110  may receive, from the client device  100   a  of the first user  515 , a selection of one of the public user interface icon  530  and the private user interface icon  525 . The social networking system  110  may receive, within a session corresponding to the selected one of the public user interface icon  530  and the private user interface icon  525 , a user interaction  550  with the content item  405  from the client device  100   a  of the first user  515 . The social networking system  110  sends for display, based on the selected one of the public user interface icon  530  and the private user interface icon  525 , one of (1) the received user interaction  550  in the public user interface for display to the first user  515  and any of the users viewing the content item, and (2) the received user interaction  550  in the private user interface  500  for display to any of the subset of the users  515 ,  520 , and  535  viewing the content item  405 . 
     The social networking system  110  may receive, from a client device of a second user (e.g., user Jon H. in  FIG. 5 ) of the users of the social networking system  110 , a request to initiate a second private session associated with the content item  405 . The request identifies a second subset of the users including the first user  515 . The social networking system  110  provides for display, on the client device  100   a  of the first user  515 , a second private user interface (corresponding to icon  540 ) for displaying user interactions by the second subset of users received within the second private session. The second private user interface (corresponding to icon  540 ) is positioned such that the first user can switch between the first  500  and second private user interfaces to view interactions of users involved in the first and second private sessions, respectively. 
     The social networking system  110  may determine a first affinity A u-s1  between the first user u and the subset s 1  of the users. The social networking system  110  may determine a second affinity A u-s2  between the first user u and the second subset s 2  of the users. The social networking system  110  may position the icon  540  corresponding to the second private user interface relative to the icon  525  corresponding to the private user interface  500  based on relative values of the first affinity A u-s1  and the second affinity A u-s2 . For example, if the first affinity A u-s1  is greater than the second affinity A u-s2 , the social networking system  110  may position the icon  540  corresponding to the second private user interface to the right of the icon  525  corresponding to the private user interface  500 . 
     Process for Sending Real-Time User Interactions 
       FIG. 6  is an illustration of the process for sending real-time user interactions with content items in a social networking system  110 , in accordance with an embodiment. In some embodiments, the process may have different and/or additional steps than those described in conjunction with  FIG. 6 . Steps of the process may be performed in different orders than the order described in conjunction with  FIG. 6 . Some steps may be executed in parallel. Alternatively, some of the steps may be executed in parallel and some steps executed sequentially. Alternatively, some steps may execute in a pipelined fashion such that execution of a step is started before the execution of a previous step. 
     The social networking system  110  sends  600  a content item among other content items associated with the users of the social networking system  110  for display on client devices  100  of the users via the user interface server  140 . The social networking system  110  receives  605 , from a client device  100   a  of a first user of the social networking system  110 , information indicating that the first user is currently viewing the content item. As one example, if the user has selected the content item in a newsfeed, the user can be directed to a content item page (e.g., a permalink) that displays the content item on a page along with the associated comments and a section that shows the reactions that have been received so far by other users on the content item. When the user selects the content item, the system  110  receives a notification of this, and when the user has this content item page open, the user is considered by the social networking system  110  to be currently viewing the content item. As another example, the social networking system  110  may include tracking pixels in the content items sent to client devices  100  such that when a content item is presented via a browser of a client device  100  (e.g., in a newsfeed with other content items), a particular program or code (or set of instructions) is executed by the browser. This code associated with a tracking pixel may cause a browser identifier associated with the client device  100  to be sent to the user interaction manager  135 . A tracking pixel may be a transparent 1×1 image, an iframe, or other suitable user interface object. The user interaction store  130  may store the browser identifier associated with the user, information describing the user interaction performed, and a time stamp value indicating the time at which the user interaction was performed. As a further example, pixels and other tracking devices can be included in content items that fire to indicate when the content item is currently in view on the screen on a user&#39;s mobile phone. 
     Responsive to receiving the information, the social networking system  110  identifies  610  a second user (client device  100   b ) connected to the first user (client device  100   a ) within the social networking system  110 , wherein the second user (client device  100   b ) is performing a user interaction with the content item while the first user is currently viewing the content item. The social networking system  110  determines  615  a type of emotion or reaction associated with the user interaction performed by the second user. The social networking system  110  sends  620  for display to the client device  100   a  of the first user, a widget identifying the second user (client device  100   b ) and/or identifying the type of emotion. A widget is a small on-screen icon with limited functionality that can be executed within a social media page. Widgets may be created in Dynamic Hypertext Markup Language (DHTML), Adobe Flash, etc. The widget is configured to move across the content item displayed on the client device  100   a  while the first user is currently viewing the content item. 
     Responsive to receiving from the client device a user interaction by the first user with the widget, the social networking system  110  sends  625  for display to the client device  100   a  information indicating the second user in a field for receiving comments by the first user. For example, if the first user taps on the icon/widget moving across the content item, the name of the second user appears in the comments field such that the first user can easily write a comment about the second user (or possibly about the second user&#39;s interaction/emotion that was displayed). In one embodiment, this entry of the second user&#39;s name in the comments field provides a tag of the second user by the first user in the comment, such that the second user is notified that the first user commented about her. 
     Sending a Content Item to a Client Device 
       FIG. 7  is an illustration of displaying a content item on a client device  100   a  of a first user of a social networking system  110 , in accordance with an embodiment. The client device  100   a  of the first user includes a display surface  725 , a bezel  730 , and a scrollbar  735  displayed on the display surface  725 . The bezel  730  shown in  FIG. 7  is a non-display area that surrounds the display surface  725 . The scrollbar  735  is a widget by which continuous text, pictures, or any other content items can be scrolled in a predetermined direction (up or down) on the display surface  725  so that all of the content items, e.g.,  705 ,  715 ,  720 ,  740 , etc., can be viewed, even if only a few of the content items, e.g.,  705 ,  715 , and  720 , can be fully seen on the display surface  725  at one time. 
     The social networking system  110  sends a content item  705  amongst a plurality of content items, e.g.,  715 ,  720 ,  740 , etc., associated with the users of the social networking system  110  for display on client devices, e.g.,  100   a , of the users. The content item  705  includes an image  710 . The content items  715 ,  720 , and  740  include text as shown in  FIG. 7 . The user interaction manager  135  may determine a type of emotion associated with a user interaction with a content item  705  performed by a user using icons, e.g., icon  750 , displayed within or adjacent to the content item  705 . 
     The social networking system may store a mapping from user interactions to types of emotions associated with the user interactions. For example, if the first user (client device  100   a ) clicks on the icon  750 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “like.” If the first user clicks on the icon  755 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “love.” If the first user clicks on the icon  760 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “haha.” If the first user clicks on the icon  765 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “wow.” If the first user clicks on the icon  770 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “sad.” If the first user clicks on the icon  775 , it may represent that the type of emotion associated with the user interaction with the content item  705  performed by the first user is “angry.” 
     The social networking system  110  may send the content item  705  for display in a newsfeed  700  on the client device  100   a . The newsfeed manager  145  may present content items e.g.,  715 ,  720 ,  740 , etc., to the user through the newsfeed  700 , which includes a plurality of content items selected for presentation to the user. In embodiments, the social networking system  110  may provide for display the content item  705  in a view of the content item  705  itself, called the permalink. In this view, no other content items would be displayed. A permalink (or permanent link) is a URL created by the social networking system  110  that is intended to remain unchanged, yielding a hyperlink that is less susceptible to link rot. Permalinks are often rendered simply, that is, as friendly URLs, so as to be easy for people to type and remember. Most modern blogging and content-syndication software systems support such links. Sometimes URL shortening is used to create them. A permalink is a type of persistent identifier and the word permalink is sometimes used as a synonym of persistent identifier. More often, though, permalink is applied to persistent identifiers which are generated by a social networking system  110  for pages served by that system. 
     The user interaction manager  135  may receive, from the client device  100   a  of the first user of the social networking system  110 , information describing a user interaction indicating that the first user is currently viewing the content item  705 . The information may be a click on the content item  705  or information conveying that the user is scrolling using the scrollbar  735  through the newsfeed  700  containing the content item  705  and has paused scrolling. 
     Identifying a Second User 
       FIG. 8  is an illustration of a second user (client device  100   b ) connected to the first user (client device  100   a ) within the social networking system  110 , in accordance with an embodiment. Responsive to receiving, from the client device  100   a , information indicating that the first user is currently viewing the content item  705 , the social networking system  110  identifies one or more other users connected to the first user within the social networking system  110 , wherein each of the one or more other users performed a user interaction with the content item  705  within a first time period t 1 . The time period t 1  denotes the time period while the first user is currently viewing the content item. The social networking system identifies the one or more other users using information from the user interaction store  130 , user interaction manager  135 , user profile store  115 , and edge store  125 . The social networking system  110  selects a second user (client device  100   b ) from the one or more other users based on an affinity between the first user (client device  100   a ) and the second user. 
     The social networking system  110  may select the second user (client device  100   b ) from the one or more other users by determining a number hi, of past user interactions between a user u and the first user (client device  100   a ), for each user u of the one or more other users. The social networking system  110  may determine the number hi, of past user interactions from the edge store  125  and user interaction store  130 . The social networking system  110  may identify the second user (client device  100   b ) as having the highest number of past user interactions Max u (I 1u ) between each user u and the first user. 
     The social networking system  110  may select the second user (client device  100   b ) from the one or more other users by determining a topic c of the content item  705 , as described above with reference to  FIG. 1 . The social networking system  110  may, for each user u of the one or more other users, determining a number of past user interactions I uc  between the user u and content items corresponding to the topic c, based on information from the content store  120 , edge store  125 , and user interaction store  130 . The social networking system  110  may identify the second user as having the highest number of past user interactions Max u (I uc ) between each user u and content items corresponding to the topic c. 
     The social networking system  110  may select the second user (client device  100   b ) from the one or more other users by, for each user u of the one or more other users, determining geolocation distances G 1u  between the client device  100   a  of the first user and the client devices ( 100   b ,  100   c , etc.,) of the other users, as described above with reference to  FIG. 1 . The social networking system  110  may identify the second user as having the smallest geolocation distance Min u (G 1u ) between the client device of each user u and the client device of the first user (client device  100   a ). 
     The social networking system  110  may determine the length of the first time period t 1  by storing a mapping from numbers of users N u  to lengths of time period t 1 . For example, if N u  is between 10 and 20, then t 1  is 10 seconds. If N u  is between 20 and 30, then t 1  may be 5 seconds. The mapping may be stored as a mapping function in which each element of the N u  domain is paired with exactly one element in the t 1  domain. The mapping may be stored as a diagram including two parallel columns for numbers of users N u  and lengths of time period respectively. The social networking system may also store the mapping as a relational database structured to recognize relations among stored items of information, e.g., numbers of users N u  and lengths of time period t 1 . 
     The social networking system  110  may determine the number of the one or more other users who interacted with content item  705  from the user interaction store  130  and user interaction manager  135 . The social networking system  110  may identify the length of the first time period t 1  corresponding to the determined number of the one or more other users based on the mapping. This method provides the benefit of using a shorter time period t 1  when the number of the one or more other users who interacted with content item  705  is large. In this way, a lesser number of candidate users are selected for the system to initiate private sessions between. This method also provides the benefit of reduced computer processing to select the second user. 
     The identified second user is associated with client device  100   b  as shown in  FIG. 8 . The social networking system  110  communicates with client device  100   b  and client device  100   a  over the network  105 , as illustrated and described earlier with reference to  FIG. 1 . The second user is a social networking connection of the first user (client device  100   a ) within the social networking system  110 . The social networking system  110  may retrieve information from the edge store  125  describing social networking connections of the first user (client device  100   a ) as edges. The edge  800  shown in  FIG. 8  shows that the second user (client device  100   b ) is connected to the first user (client device  100   a ). 
     In one embodiment, the second user, e.g., on client device  100   b , may interact with content items, e.g.,  705 , in a newsfeed, e.g.,  820 . While the second user associated with client device  100   b  received the content item  705  in the newsfeed  820 , as displayed on client device  100   b , the other content items ( 805 ,  810  and  815 ) in the second user&#39;s newsfeed  820  are different from the content items in the newsfeed  700  in client device  100   a . Each user may thus receive a distinct newsfeed. In the example shown in  FIG. 8 , the second user performed an interaction with the content item  705  by tapping on icon  825  within the first time period t 1 . The type of emotion associated with the second user&#39;s interaction with the content item  705  is “like” (icon  825 ). 
     Widget Identifying the Second User 
       FIG. 9  is an illustration of a profile image  900  of the second user (client device  100   b ) in a permalink  905  of the content item  705 , displayed on the device of the first user (client device  100   a ) of the social networking system  110 , in accordance with an embodiment. The permalink  905  is visible on client device  100   a  because the first user selected content item  705  on client device  100   a . The profile image  900  of the second user may be displayed as a widget. The social networking system  110  sends for display to the client device of the first user (client device  100   a ), one or more widgets  900  including information identifying the second user (client device  100   b ). As shown in  FIG. 9 , the first user has scrolled down the permalink  905  to view comments  915 ,  920 , etc. Content item  705  (above comment  915  in the permalink  905 ) is no longer visible on client device  100   a . Other comments  940  and  945  for content item  705  are now visible lower in the permalink  905 . 
     The information identifying the second user (client device  100   b ) may include a profile image  900  of the second user, an avatar of the second user, text representing the second user&#39;s name, coordinates representing the second user&#39;s geolocation, or a screenname of the second user, all obtained from the user profile store  115 . The coordinates may be part of a coordinate system that enables every location on Earth to be specified by a set of numbers, letters or symbols. The coordinates representing the second user&#39;s geolocation may be latitude, longitude, altitude, GPS coordinates, etc. In embodiments, the widget  900  may be displayed in a permalink on client device  100   a.    
     Some benefits and advantages of this method are that the first user (client device  100   a ) can efficiently be notified in real-time of other users&#39; interactions with the content item  705 . One benefit over conventional methods is that in conventional methods, the first user (client device  100   a ) may not see interactions that would be of interest to him or her because the interactions of interest may be aggregated with other interactions or because the number of interactions with the content item is too large. The first user will see other users&#39; interactions in real time, thereby enabling the first user to interact with other users&#39; interactions in a timely way. In addition, even if the first user is scrolling down his or her newsfeed  700  or permalink  905 , as shown in  FIG. 9 , and the content item  705  is not visible, he or she will still be notified of an interaction from another user because the notification of the interaction will be displayed via a widget  900  on the client device  100   a  and not at the very top of the permalink  905  near the content item  705 , which is not visible to the first user. In embodiments, the widgets  900  displayed move or float across the screen to capture the first user&#39;s attention. 
     Icon Identifying a Type of Emotion 
       FIG. 10  is an illustration of a widget  1000  identifying a type of emotion, associated with the reaction of the second user, in the permalink  905  displayed on a client device  100   a  of a user of the social networking system  110 , in accordance with an embodiment. The icon  1000  may be a widget identifying a type of emotion associated with the second user&#39;s interaction. The social networking system  110  may store a mapping from user interactions to types of emotions associated with the user interactions, as illustrated and described above with reference to  FIG. 7 . The social networking system  110  may store the mapping from user interactions to types of emotions as a mapping function, a mapping diagram, or a relational database, as described above with reference to  FIG. 8 . The social networking system  110  may receive, from the client device  100   b  of the second user, the user interaction with the content item  705  performed by the second user. The social networking system  110  may identify the type of emotion corresponding to the received user interaction with the content item  705  performed by the second user based on the mapping. In the example shown in  FIG. 10 , the type of emotion corresponding to the user interaction with the content item  705  performed by the second user is “like.” In one embodiment, the user profile image icon  900  from  FIG. 9  turns into the emotion icon  1000  at some point as it moves across the permalink  905 . In some embodiments, only the profile image  900  icon or only the emotion icon  1000  is provided. The icons, e.g.,  900  or  1000 , can float across the page, such as from the bottom to the top of the page, or otherwise move to attract the viewing user&#39;s attention. 
     The social networking system  110  may send to the first user (client device  100   a ) one or more widgets, such as the icon  1000  representing an emotion associated with the second user&#39;s interaction, as shown in  FIG. 10 , or text representing the type of emotion associated with the user interaction, e.g., “LIKE.” The one or more widgets  1000  representing an emotion may be sent by the social networking system  110  to the first user&#39;s device  100   a , such that they appear after the one or more widgets  900  identifying the second user in time, illustrated above with reference to  FIG. 9 . The one or more widgets  1000  representing an emotion may be superimposed on the one or more widgets  900  identifying the second user. In embodiments, the widgets  900  and  1000  displayed move across the screen to capture the first user&#39;s attention. 
     The widgets  1000  may be configured to receive a user interaction from the client device of the first user (client device  100   a ) within a second time period t 2 . The length of the second time period t 2  may be determined by the social networking system  110  based on the number of the one or more other users who performed a user interaction with the content item  305  within the first time period t 1 . The length of the second time period t 2  may decrease as the number of the one or more other users increases. This method provides the benefit of using a shorter time period for the first user to respond and for the social networking system  110  to initiate a private session when the number of candidate second users who interacted with content item  705  is large. In this way, if the first user does not respond within the second time period t 2 , the social networking system may stop displaying the widgets  1000  and may provide other widgets identifying another user (e.g., client device  100   c ) who performed a user interaction with content item  705  within the first time period t 1 , as described above with reference to  FIG. 8 . 
     Automatic Identification of the Second User in a Comments Field 
       FIG. 11  is an illustration of a field  1115  for receiving comments by the first user on the client device  100   a , in accordance with an embodiment. The field  1115  contains information  1120  indicating the identity of the second user on the first user&#39;s device  100   a  to communicate with the second user&#39;s device  100   b . Responsive to receiving, from the client device of the first user (client device  100   a ), a user interaction with the one or more widgets  1000  within the second time period t 2 , the user interface server  140  sends for display to the client device  100   a  information  1120  indicating the second user in the field  1115  for receiving comments by the first user. 
     The user interface server  140  may configure for display on the client device  100   a  of the first user the field  1115  and a text user interface  1125  for entering a comment  1110  directed to the second user indicated by name  1120 . In one embodiment, the text user interface  1125  is displayed at the bottom of the permalink  905  on the client device  110   a . Because the icon  1000  (shown in  FIG. 10 ) is no longer visible after the first user has interacted with it, the entire comment  940  (partially hidden by the icon  1000  in  FIG. 10 ) is now visible in the permalink  905  on client device  100   a . When the social networking system  110  displays the field  1115  and configures for display the text user interface  1125 , it may pre-enter text characters  1120  corresponding to the second user&#39;s name or screenname in the text user interface  1125  as shown in  FIG. 11 . This ensures that any comment  1110  entered at the client device  100   a  tags the second user on client device  100   b . If the first user provides a text comment  1110 , the online networking system  110  provides for display to the first user and the second user the comment  1110 . For example, the comment  1110  appears as a comment  1135  at the bottom of the screen of the client device  100   b  of the second user in  FIG. 11 . The identity of the sending first user  1130  is also displayed in comment  1135 . 
     In an embodiment, the comment  1110  may be displayed as an incoming text message on the client device  100   b  of the second user. In an embodiment, the user interface server  140  may initiate a private session  1100  between the client device  100   a  of the first user and the client device of the second user  100   b . The advantage of this method is that it allows the first and second users to interact privately and in real time based on the emotion associated with the second user&#39;s interaction with the content item  705 . The social networking system  110  may initiate the private session  1100  as part of protocols and services at the application layer, at the session layer, or at the transport layer in the Open Systems Interconnection (OSI) model. The social networking system  110  may initiate the private session  1100  using the Session Initiation Protocol (SIP), a communications protocol for signaling and controlling voice and video calls. The session  1100  may be initiated over Internet Protocol (IP) networks. The session  1100  may employ design elements similar to the HTTP request/response transaction model. Each message sent by the client device  100   a  or  100   b  may include a client request that invokes a particular method or function on the user interface server  140  and at least one response. 
     In an embodiment, the user interface server  140  may configure for display on the client device  100   a  of the first user a user interface for interacting with the client device  100   b  of the second user via the private session. The user interface may include a text messaging interface  1125 , a video chat interface, a telephone call interface, etc. The text messaging interface  1125 , illustrated in  FIG. 11  may be an interface for sending electronic messages, consisting of alphabetic and numeric characters over a cellular phone network, cable network, Local Area Network, etc. The text messaging interface  1125  may include messages sent using the Short Message Service (SMS), multimedia messages (known as MIMS) containing digital images, videos, and sound content, as well as ideograms known as emoji (happy faces and other icons). When the social networking system  110  displays the field  1115  and configures for display the text messaging interface  1125 , it may pre-enter text characters corresponding to the second user&#39;s name  1120  or screenname in the text messaging interface  1125  as shown in  FIG. 11 . This ensures that any message sent by the client device  100   a  within the private session  1100  is received only by client device  100   b  or another client device associated with the second user. If the first user provides a text comment  1110 , the online networking system  110  provides for display to the first user and the second user the comment  1110 . The comment  1110  is displayed as an incoming message on the client device  100   b  of the second user. The message includes the name or screenname of the sender of the message  1115  (i.e., the first user). 
     In embodiments, the social networking system may configure for display a video chat interface on the client device  100   a  that enables the reception and transmission of audio-video signals by the client device  100   a  and client device  100   b  at different locations, for communication between the first user and second in real-time. In embodiments, the private session  1100  may include sending still images between client devices every few seconds. The advantage of this method is that in commercial and corporate settings, it may facilitate meetings and conferences, typically between parties that already have established relationships on the social networking system  110 . As a result, by reducing the need to travel to bring people together the method also contributes to reductions in carbon emissions. 
     In embodiments, the social networking system  110  may configure for display on the client device  100   a  a telephone call interface for setting up a phone call over a cellular network. The private session  1100  may thus be initiated as part of a communication network where the last link is wireless. In this example, the private session is distributed over land cells, where each cell is served by at least one fixed-location transceiver, known as a cell site or base station. 
     In embodiments, the content items, icons, widgets, text messaging interface, video chat interface, telephone call interface, etc., disclosed herein are sent or configured for display by the social networking system  110  for display in a newsfeed. In embodiments, the content items, icons, widgets, text messaging interface, video chat interface, telephone call interface, etc., are sent or configured for display by the social networking system  110  for display in a permalink, e.g.,  905 . 
     Alternate Embodiments 
     The foregoing description of the embodiments of the invention has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure. 
     Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof. 
     Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software modules, alone or in combination with other devices. In one embodiment, a software module is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described. 
     Embodiments of the invention may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, and/or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory, tangible computer readable storage medium, or any type of media suitable for storing electronic instructions, which may be coupled to a computer system bus. Furthermore, any computing systems referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability. 
     Embodiments of the invention may also relate to a product that is produced by a computing process described herein. Such a product may comprise information resulting from a computing process, where the information is stored on a non-transitory, tangible computer readable storage medium and may include any embodiment of a computer program product or other data combination described herein. 
     Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.