Patent Publication Number: US-9426157-B2

Title: Platform for providing a social context to software applications

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to U.S. patent application Ser. No. 11/893,559, titled “Platform for Providing a Social Context to Software Applications,” filed on Aug. 15, 2007, and is related to U.S. patent application Ser. No. 11/493,291, titled “Systems and Methods for Dynamically Generating a Privacy Summary,” filed on Jul. 25, 2006, and U.S. Provisional Patent Application Ser. No. 60/906,961, titled “Systems and Methods for Network Authentication,” filed on Mar. 13, 2007. The disclosures of both of the above U.S. patent applications are incorporated by reference herein. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to internet applications, and particularly to using an internet-based social network to provide a social context to a user&#39;s interaction with a third-party software application. 
     2. Description of Related Art 
     Providers of internet-based social networks currently allow third-party software developers to develop applications that can interact with the social network. However, the social networks provide only limited information, and do not offer a social context to the application. That is, a user of the third-party application does not see what other users of the social network are doing, or access information about other users of the social network that is not publicly available information. 
     There is no currently available platform that a third-party developer of a software application may use to develop an application that draws a social context from information available in the social network. 
     SUMMARY OF THE INVENTION 
     The present invention provides a system and method for providing a social context to software applications. According to one embodiment of the invention, a user of a social network may authorize access by an external software application to information available in the social network. When the user of the social network uses the external application, the application contacts the social network provider for permission to access the information available in the social network. If access has been authorized, the application incorporates the information from the social network into its interaction with the user, providing a social context to the user&#39;s interaction with the application. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an architecture connecting a social network provider, a software application, and users of computing devices over a network that may be used with the present invention. 
         FIG. 2  is a block diagram showing exemplary interactions of a user with a social network provider and with a third-party software application according to the present invention. 
         FIG. 3  is a block diagram of an exemplary social network provider offering a platform for providing a social context to a software application. 
         FIG. 4  shows a screenshot of an exemplary external software application having a social context provided by a social network provider according to the present invention. 
         FIG. 5  shows another screenshot of an exemplary external software application having a social context provided by a social network provider according to the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention provides a platform for using a social network to provide a social context to a software application that is external to the social network, such as an application developed by a third-party developer rather than the social network provider and/or which does not reside within the social network or social network provider. A social context comprises information that personalizes the interaction of a user with the software application. 
     A social network provider may offer access to a platform according to the present invention to a third-party developer of a software application, so that the developer may design an application that draws a social context from the social network. Such an application may then incorporate privacy-controlled information about users of the social network, allowing the user of the application to experience the social context provided by the social network provider. 
     For example, a user of a social network may also wish to use a third-party software application that displays book reviews. If the user has authorized the social network provider to provide information associated with the user in the social network to an external application, then the user may access that information through the book review application. For example, the user may use the application to find book reviews on that application created by people with whom he has established connections in the social network. If the social network normally collects its own data on books, location, or any other set of its own data accessible through the provided application programming interface, the user may incorporate that data into his use of the third party application as well. 
       FIG. 1  is a block diagram of an architecture connecting a social network provider  102 , a software application  104 , and users of computing devices  106  over a network  108  that may be used with the present invention. Users  106 , such as a user  106 A, a user  106 B, and a user  106 N, communicate over a network  108  with a social network provider  102 . The users  106 A- 106 N may use any type of communication device compatible with the social network provider  102 , such as a cellular telephone, a personal digital assistant, and/or a desktop or a laptop computer. Any type of communication device falls within the scope of various embodiments. 
     The social network provider  102  may comprise any user or entity that provides social networking services, for example, communication services, dating services, or other services for social interaction. For example, the social network provider  102  may host a website that allows one or more users  106  to communicate with one another via the website. In one instance, the user  106 A may communicate with the user  106 B via a social networking website associated with the social network provider  102  that offers the user an opportunity to connect or reconnect with one or more other users  106 B- 106 N who attended, for example, the same university as the user  106 A. 
     According to some embodiments, a developer of an application  104  may contact the social network provider  102  and request an application key from the developer. The social network provider  102  may review the developer&#39;s proposed application  104  and approve interaction between the application  104  and the social network. Review and approval may take any desired form; for example, they may require review by a person or they may be automatic. 
     The application  104  may be any type of application, so that, for example, those that display still or moving images, those that play sounds such as music or speech, those for financial management, for calendaring, or for any purpose are within the scope of the invention. The application  104  may be written in any natural and/or computer language or languages. 
     When a user  106 A encounters the application  104  and uses it in a way that requests access to information from the social network provider  102 , the social network provider  102  checks to see whether the user of the application has provided authorization for access to the information by the application  104 . 
     In some embodiments, a user of a social network may authorize external use of information available in the social network over which he has control. For example, the information may be associated with his user profile, account, userid (a piece of unique user identification), or any other data or data structure representing the user. Exemplary authorization methods include, but are not limited to, those in which: (1) the user opens an infinite session with the social network (as described in U.S. Provisional Patent Application Ser. No. 60/906,961, titled “Systems and Methods for Network Authentication,” filed on Mar. 13, 2007); and (2) the user logs into the social network and through a checkbox menu or other display selects authorization settings for some or all of his information in the social network. Authorization may occur before or during the user&#39;s access to application  104 , and may persist indefinitely until altered by the user or by the social network provider  102 . Alternatively, for example, the login process of the social network may start a clock that results in the expiration of the authorization after some time period; after expiration, a new authorization would be required. Thus, the user of the application  104  may be, but need not be, actively using the social network (for instance, through a window open on his computer&#39;s desktop) while accessing information available in the social network through the application  104 . 
     Information available in the social network for use with the application  104  may be subject to privacy settings selected by the users  106  of the social network (as described in U.S. patent application Ser. No. 11/493,291, titled “Systems and Methods for Dynamically Generating a Privacy Summary,” filed on Jul. 25, 2006). The privacy settings selections may be set either as a part of the authorization process described above, or independently. In such a case, the application  104  should be designed to incorporate privacy-controlled information about users  106  of the social network into the interaction of user  106 A with the application  104 , so that the privacy settings set by the user  106 A in the social network are incorporated into the interactions of user  106 A or other users with the application  104 . 
       FIG. 2  is a block diagram showing exemplary interactions of a user  106 A with a social network provider  102  and with a third-party software application  104 . The user  106 A is having an interaction  202  with the application  104  at the moment depicted. For the social network provider  102  to provide a social context for the application  104  that is personalized to user  106 A, interactions  204  and  206  must be occurring and/or must have already occurred at the time of interaction  202 . 
     In an exemplary embodiment, interaction  204  between a user  106 A and a social network provider  102  comprises the authorization process described above, in which user  106 A authorizes the access of information about user  106 A by the application  104 . Interaction  204  may optionally also comprise the selection of privacy settings by user  106 A. Interaction  206  comprises one or more instances of access of data in the social network by the application  104 . For example, an application  104  that dynamically updates information from the social network will have frequent, multiple interactions  206  with the social network provider  102 ; such interactions  206  may be mediated or otherwise processed by one or more application processing interfaces as shown in  FIG. 3 . Interactions  208  comprise authorizations, privacy settings selections, and/or other information provided to the social network provider  102  by one or more users  106 B- 106 N, which similarly control access to their information by the application  104 . 
       FIG. 3  is a block diagram of an exemplary social network provider  102  offering a platform for providing a social context to one or more software applications  104 . The social network provider  102  may comprise a server, a client device, or any other device. 
     The social network provider  102  includes a user information database  302 , a verification module  304 , and an application programming interface  306 , and may optionally also include a privacy settings selections component  308 . The user information database  302  stores data associated with each user  106 A- 106 N of the social network, which may be accessible by a third-party application under appropriate conditions. When a user  106 A authorizes access to one or more external applications, and/or selects or updates privacy settings associated with his information, the user information database  302  updates the data associated with user  106 A. Accordingly, authorizations and privacy settings selections are stored in association with each user  106 . Authorizations, privacy settings selections and other user  106  information may be stored, modified, added, or otherwise embodied or captured in any storage medium. 
     The verification module  304  verifies that the user  106 A of an application  104  attempting to access information from the social network has authorized use of that information, as discussed herein. 
     The application programming interface  306  communicates with the application  104  over the network  108 . The application  104  communicates various types of information, such as requests for information about user  106 A, requests for information about one or more users  106 B- 106 N, and optionally updates of information about user  106 A, to the social network provider  102  through the application programming interface  306 . Any type of application programming interface  306  is within the scope of various embodiments. 
     Optionally, a privacy settings selections component  308  receives privacy settings selections from a user  106 , such as user  106 A. The privacy settings selections component  308  updates the user information database  302  with the privacy settings selected by the user  106 A. 
     Although the social network provider  102  is described as being comprised of various components (such as the user information database  302 , the verification module  304 , the application programming interface  306  and the privacy settings selections component  308 ), fewer or more components may comprise the social network provider  102  and still fall within the scope of various embodiments. 
     The social network provider  102  may provide any type of social network. That is, a social network may comprise users grouped according to any type of category, such as friends, users living near each other, and fellow alumni. The user may specify the networks and groupings, and/or the networks and groupings may be predetermined by the social network provider  102 . Thus, a user  106 A may be related to a user  106 N in various ways through the social network, for example, by being included with user  106 N in a group of users living in the Boston area. 
       FIG. 4  shows a screenshot  400  of an exemplary external software application  104  having a social context provided by a social network provider  102  according to the present invention. The application “MoochSpot” allows the user  106 A to keep track of loans and debts to users  106 B- 106 N to whom user  106 A is related through the group “friends” in the social network. While as illustrated, there is a link  402  that asks the user to log into the social network, in other embodiments the user need not be simultaneously logged into the social network. 
       FIG. 5  shows another screenshot  500  of an exemplary external software application  104  having a social context provided by a social network provider  102  according to the present invention. A portion  502  of the screen allows user  106 A to create a “piggy bank” and invite his “friends” from among users  106 B- 106 N to join it. For example, a link  504  invites the user  106 A to click and thereby be directed to another display of additional information (not shown); the social context provided to the application  104  for user  106 A by the social network provider  102  is updated through the display of additional information about, and the creation of new relationships with, users  106 B- 106 N. A portion  506  of the screen also allows user  106 A to view any financial transactions with users  106 B- 106 N through application  104 . As these transactions occur, the social context provided to the application  104  will be updated accordingly. 
     While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments.