CN113302586A - 动态应用配置 - Google Patents
动态应用配置 Download PDFInfo
- Publication number
- CN113302586A CN113302586A CN202080008272.XA CN202080008272A CN113302586A CN 113302586 A CN113302586 A CN 113302586A CN 202080008272 A CN202080008272 A CN 202080008272A CN 113302586 A CN113302586 A CN 113302586A
- Authority
- CN
- China
- Prior art keywords
- application
- network
- access
- level
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000006870 function Effects 0.000 claims description 145
- 238000004891 communication Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 230000006855 networking Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000007789 gas Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002747 voluntary effect Effects 0.000 description 2
- 101100135890 Caenorhabditis elegans pdi-6 gene Proteins 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 210000004243 sweat Anatomy 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/48—Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/61—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor using advertising information
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F13/792—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for payment purposes, e.g. monthly subscriptions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/87—Communicating with other players during game play, e.g. by e-mail or chat
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/92—Video game devices specially adapted to be hand-held while playing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0209—Incentive being awarded or redeemed in connection with the playing of a video game
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Primary Health Care (AREA)
- Human Resources & Organizations (AREA)
- Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
描述了用于在社交网络中提供应用的多个版本的方法和系统。在一些方面,应用的第一版本提供第一功能集,而应用的第二版本提供第一功能集以及第二功能集。应用的第一版本和应用的第二版本二者访问相同的应用状态数据,这些数据可以由后端系统维护,例如社交网络。当状态数据由应用的一个或其他版本更新时,可以向应用的另一版本提供通知,通知其更新。应用状态数据可表示例如由应用的第一和第二版本二者访问的共享游戏环境。
Description
相关申请的交叉引用
本申请要求于2019年5月9日提交的申请号为16/408,036的美国专利申请的优先权的权益,该申请要求于2019年1月8日提交的申请号为62/789,823的美国专利临时申请的优先权的权益,每个申请都在此通过引用并入本文。
技术领域
本公开总体上涉及软件开发工具包(SDK),并且更具体地涉及使用SDK促进消息传递应用与第三方或游戏应用之间的交互。
背景技术
社交网络应用支持广泛的功能,这些功能还在不断扩展。这些功能中的一些包括将第三方应用集成到社交网络框架中的能力。
附图说明
在不一定按比例绘制的附图中,相同的数字可以在不同的视图中描述相似的组件。具有不同字母后缀的相同数字可代表相似组件的不同实例。在附图的图中通过示例而非限制的方式示出了一些实施例。
图1是示出根据示例实施例的用于在网络上交换数据(例如,消息和相关联的内容)的示例消息传递系统的框图。
图2是示出根据示例实施例的可以存储在消息传递服务器系统的数据库中的数据的示意图。
图3是示出根据示例实施例的由消息传递客户端应用生成的用于通信的消息的结构的示意图。
图4是示出根据示例实施例的游戏应用平台在执行用于促进消息传递应用与基于网络的游戏应用之间的交互的过程中的示例操作的流程图。
图5示出了可在一个或多个所公开的实施例中实现的三个用户界面。
图6示出了可在一个或多个所公开的实施例中实现的组件之间的消息流。
图7示出了可在一个或多个所公开的实施例中实现的用户界面。
图8示出了可在一个或多个所公开的实施例中实现的用户界面。
图9是可在至少一些所公开的实施例中实现的用户界面。
图10示出了可在至少一些所公开的实施例中实现的用户界面。
图11示出了可在一个或多个所公开的实施例中实现的示例数据结构。
图12是说明代表性软件架构的框图,其可结合本文所述的各种硬件架构使用。
图13是示出根据一些示例性实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的任何一种或多种方法的机器的组件的框图。
具体实施方式
以下描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,也可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,众所周知的指令实例、协议、结构和技术不必详细示出。
所公开的实施例通过提供动态应用配置来改进设备的功能和操作。应用可被动态地配置以根据可以由应用的用户或系统管理员设置的配置信息来呈现各种功能或函数,这改进了系统和设备的功能和操作。
在一些方面,通过管理工具将新应用上传到社交网络平台。然后,新应用被配置为指示应用的可以进行动态配置的一个或多个功能。例如,管理工具可向用户提供以选择性地配置一个或多个第一功能。管理工具还可向管理员提供以配置一个或多个第二功能。在某些情况下,该配置可能表明可能需要支付一定数量的真实或虚拟货币才能启用一个或多个功能。在某些情况下,配置可指示与用户相关联的不同访问级别(例如标准或高级访问级别)可能是启用一个或多个功能所必需的。
然后可以使应用对一组用户可用。然后,每个用户可自定义由管理员使得其可用的零个或多个功能。例如,当管理员配置应用的动态功能时,管理员可指示用户是否可以进一步配置该功能。因此,管理员可配置施加到所有用户的应用“全局”设置。这些全局设置然后可以由与应用交互的一个或多个用户单独定制。用户自定义功能的能力取决于管理员在最初设置应用时是否启用了此类自定义。
这些应用需要执行访问用户数据的功能。例如,一些应用可能希望提供应用内购买,需要执行电子商务交易。电子商务交易的执行可能需要访问用户数据,特别是敏感的用户数据,例如可针对用户存储在社交网络中的信用卡信息或其他财务信息。但是,这些应用不一定完全值得信赖。例如,应用可能以非安全语言编写,例如超文本标记语言5(HTML5),这可能会带来一个或多个安全漏洞。例如,用HTML5编写的应用可能会以不安全的方式进行编辑,因此信任应用可能尝试的操作可能是不切实际的。因此,将用户数据暴露给这些应用可能会带来不可接受的安全风险。为了减轻这种风险,同时仍然向应用提供执行需要访问用户数据的功能的能力,所公开的实施例通过向在网络视图中运行的基于网络的应用提供接口来改进设备的功能和操作。基于网络的应用被配置为在限制对用户数据的访问的第一安全域中运行。然后,对于需要访问用户数据的某些功能,基于网络的应用可生成对本地应用或消息传递应用的请求。
此外,所公开的实施例通过提供应用的多个版本以访问由社交网络维护的等效状态信息来改进设备的功能和操作。作为一个示例,第一应用版本可具有第一功能集,并且同一应用(例如,同一游戏)的第二应用版本可使第一功能集以及第二功能集可用,该第二功能集在第一应用中不可用。第一应用版本和第二应用版本二者可访问由社交网络维护的等效状态信息。例如,游戏应用的两个版本可访问相同的状态信息,使得操作具有不同功能集的应用的两个版本的两个用户仍然可以参与共同的游戏体验。
所公开的实施例通过提供促进消息传递应用与基于网络的应用(例如,基于网络的游戏应用)之间的通信的平台来改进设备的功能和操作。根据某些实施例,基于网络的应用可使用来自消息传递应用的数据安全地获取用户数据并确定访问级别,例如用户是否具有高级访问级别或标准访问级别。这允许基于网络的应用能够例如通过提供基于网络的应用的不同版本而基于与用户相关联的访问级别来访问不同的功能集,这改进了系统和设备的功能和操作。在一个实施例中,消息传递应用促进用户的购买交易,以独立于启动基于网络的应用而将访问级别升级到高级访问级别。以这种方式,消息传递应用可以收集和利用来自用户的支付信息来完成购买交易,并且此类敏感信息不需要由用户提供给基于网络的应用。在消息传递应用完成购买交易之后,消息传递应用可安全地通过平台或直接向基于网络的应用通知或发送通信,指示用户的访问级别已升级或指示用户具有高级访问级别。使用该平台,仅用户使用基于网络的应用所需的信息由消息传递应用提供给基于网络的应用,这改进了设备的功能和操作。
图1是示出了用于在网络106上交换数据(例如消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104通过网络106(例如因特网)通信地耦接到消息传递客户端应用104和消息传递服务器系统108的其他实例。
因此,每个消息传递客户端应用104能够经由网络106与另一个消息传递客户端应用104和消息传递服务器系统108进行通信并交换数据。在消息传递客户端应用104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如调用函数的命令)以及有效载荷数据(例如文本、音频、视频或其他多媒体数据)。
每个消息传递客户端应用104还能够与一个或多个基于网络的游戏应用服务器107通信。每个基于网络的游戏应用服务器107托管例如基于HTML5的游戏。特别地,消息传递客户端应用104通过从与游戏相关联的基于网络的游戏应用服务器107访问HTML5文件来启动基于网络的游戏。在某些实施例中,由基于网络的游戏应用服务器107托管的游戏利用存储在由消息传递服务器系统108提供的游戏应用平台124上的SDK来以JavaScript编程。SDK包括具有可由基于网络的游戏应用调用的函数的应用程序接口(API)。在某些实施例中,游戏应用平台124包括JavaScript库,该库提供给定游戏应用对消息传递客户端应用104的某些用户数据的访问。根据某些实施例,HTML5被用作用于编程游戏的示例技术,但基于其他技术被编程的游戏也可被使用。关于基于网络的游戏应用的公开内容类似地应用于任何其他类型的基于网络的应用,例如基于网络的第三方应用。
为了将SDK的功能集成到游戏(或第三方应用)中,SDK由基于网络的游戏应用服务器107从消息传递服务器系统108下载或以其他方式由基于网络的游戏应用服务器107接收。在下载或接收之后,SDK被包括作为基于网络的游戏的应用代码的一部分。基于网络的游戏的代码然后可调用SDK的某些函数以将消息传递客户端应用104的功能集成到基于网络的游戏应用中。
存储在游戏应用平台124上的SDK有效地提供了基于网络的游戏应用(或第三方基于网络的应用)与消息传递客户端应用104之间的桥梁。这为用户提供了在消息传递客户端应用104上与他们的朋友通信,保留消息传递客户端应用104的外观和感觉,同时玩基于网络的游戏应用的无缝体验。为了桥接基于网络的游戏应用与消息传递客户端应用104,在某些实施例中,SDK促进基于网络的游戏应用服务器107与消息传递客户端应用104之间的通信。在某些实施例中,运行在客户端设备102上的WebViewJavaScriptBridge在基于网络的游戏应用与消息传递客户端应用104之间建立两个单向通信信道。消息通过这些通信信道在基于网络的游戏应用与消息传递客户端应用104之间异步发送。每个SDK函数调用作为消息发送,针对每个SDK函数的回调通过构造唯一的回调标识符并使用该回调标识符发送消息来实现。
通过使用SDK,并非来自消息传递客户端应用104的所有信息都与基于网络的游戏应用服务器107共享。SDK基于该基于网络的游戏应用的需要以及基于由消息传递客户端应用104启动基于网络的游戏应用的上下文,来限制共享哪些信息。
在某些实施例中,每个基于网络的游戏应用服务器107向消息传递服务器系统108提供对应于基于网络的游戏应用的HTML5文件。消息传递服务器系统108可以在消息传递客户端应用104中添加游戏的视觉表示。在用户通过消息传递客户端应用104的GUI选择视觉表示或指示消息传递客户端应用104开始游戏(或其他基于网络的应用)之后,消息传递客户端应用104获得HTML5文件并启动开始游戏所需的所有资源。在一些情况下,消息传递客户端应用104访问对应的基于网络的游戏应用服务器107以开始游戏。
在某些实施例中,相同的基于网络的应用可具有多个HTML5文件,每个对应于应用的不同版本。例如,第一HTML5文件可对应于具有已启用的第一功能集的应用的第一版本,例如用于标准访问级别的用户。例如,第二HTML5文件可对应于具有已启用的第二功能集的应用的第二版本,该第二功能集包括第一功能集和附加功能,例如用于高级访问级别的用户。在一些实施例中,第一功能集可对应于第一选项、第一功能、第一奖励、第一奖励获得率、以及第一级别,其在有广告的情况下对于标准访问级别是可访问的。在一些实施例中,第二功能集可对应于第一选项、第一功能、第一奖励、第一奖励获得率和第一级别,其在没有广告的情况下对于标准访问级别是可访问的。在一些实施例中,第二功能集可对应于第二选项、第二功能、第二奖励、第二奖励获得率和第二级别,其在有或没有广告的情况下对于高级访问级别是可访问的。
对应于基于网络的游戏应用的HTML5文件可包括基于网络的游戏应用的唯一标识符。HTML5文件还可包括与访问级别相关的信息。具体地,HTML5文件可包括基于网络的游戏应用中的各个阶段或级别的标识符以及该级别或阶段对于特定访问级别是启用还是禁用的标识符。对于每个阶段或级别,HTML5文件可指定启用该阶段或级别所需的一种或多种类型的访问级别。基于网络的游戏应用的唯一标识符以及游戏中不同级别或阶段之间的关联以及启用级别或阶段所需的对应访问级别可被存储在游戏应用平台124可访问的数据库120中。
消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器端功能。尽管在本文中将消息传递系统100的某些功能描述为由消息传递客户端应用104或由消息传递服务器系统108执行,但是应当理解,某些功能在消息传递客户端应用104或消息传递服务器系统108内的位置是设计选择。例如,在技术上优选地是首先在消息传递服务器系统108内部署某些技术和功能,然后将该技术和功能迁移到其中客户端设备102具有足够处理能力的消息传递客户端应用104。
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据,以及处理由消息传递客户端应用104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和叠加(overlay)、虚拟对象、消息内容持久性条件、社交网络信息,和现场事件信息。消息传递系统100中的数据交换通过经由消息传递客户端应用104的用户界面(UI)可用的功能来调用和控制。
现在具体转到消息传递服务器系统108,应用程序接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进对数据库120的访问,数据库120中存储有与由应用服务器112处理的消息相关联的数据。
特别地处理API服务器110,该服务器在客户端设备102和应用服务器112之间接收和发送消息数据(例如命令和消息有效载荷)。具体地,API服务器110提供可被消息传递客户端应用104和基于网络的游戏应用服务器107调用或查询的一组接口(例如例程和协议),以便调用应用服务器112的功能。API服务器110公开由应用服务器112支持的各种功能,包括:账户注册;登录功能;经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息;从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如图像或视频),以供另一消息传递客户端应用104进行可能的访问;媒体数据(例如故事)集合的设置;此类集合的取得;客户端设备102的用户的好友列表的取得;消息和内容的取得;添加好友到社交图中和从社交图删除好友;好友在社交图中的位置;访问存储在奖励活动系统125上的奖励活动和/或虚拟货币;访问用户对话数据;访问存储在消息传递服务器系统108上的化身信息;访问认证令牌;访问排行榜;访问游戏比分信息;以及打开应用事件(例如与消息传递客户端应用104有关)。
应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122、游戏应用平台124、和奖励活动系统125。消息传递服务器应用114实现多个消息处理技术和功能,其特别涉及包括在从消息传递客户端应用104的多个实例接收的消息中的内容(例如文本和多媒体内容)的聚合和其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如被称为故事或图库(gallery))。然后,消息传递服务器应用114使得这些集合对于消息传递客户端应用104可用。考虑到此类处理的硬件要求,消息传递服务器应用114还可以在服务器端对数据进行其他处理器和存储器密集型处理。
应用服务器112还包括图像处理系统116,该图像处理系统116专用于通常关于在消息传递服务器应用114处的消息的有效载荷内接收到的图像或视频来执行各种图像处理操作。
社交网络系统122支持各种社交网络功能和服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图。社交网络系统122支持的功能和服务的示例包括识别特定用户与其具有关系或者特定用户“正在关注”的消息传递系统100的其他用户,以及还识别特定用户的其他实体和兴趣。此类其他用户还可被称为用户的好友。
奖励活动系统125存储多个广告。这些广告可包括视频剪辑的集合(例如,10秒的视频剪辑、少于10秒的视频剪辑、和/或30-40秒的视频剪辑)。给定的基于网络的游戏应用可使用存储在奖励活动系统125上的广告来向基于网络的游戏应用中的用户提供奖励。例如,可以向用户提供观看视频游戏中的给定广告以访问各种功能(例如,提升级别、升级盔甲或武器、增加分数或购买游戏内容)的选项。在某些情况下,如果用户观看一个或多个广告或支付给定费用,则第一功能集对于与标准访问级别相关联的用户是可用的。在某些情况下,在无需用户观看一个或多个广告的情况下或如果用户支付的费用低于给定的费用,则第一功能集对于与高级访问级别(例如,具有比标准访问级别更大的访问权限的访问级别)相关联的用户是可用的。奖励活动系统125可包括消息传递服务器系统108的每个用户的简档集合。基于简档,奖励活动系统125可选择适合给定用户或可能使给定用户感兴趣的广告。奖励活动系统125还可跟踪消息传递服务器系统108的每个用户已经观看了哪些广告以避免向同一用户多次呈现相同的广告。利用由消息传递服务器系统108管理的奖励活动系统125避免了基于网络的游戏应用服务器107必须获得和管理其自己的广告。
状态信息可包括与基于网络的游戏应用相关联的唯一标识符。基于网络的游戏应用可访问数据库120以获得预期的唯一标识符并将预期的唯一标识符与在状态信息中接收到的标识符进行比较。响应于确定标识符彼此匹配或以预期方式对应,基于网络的游戏应用可向用户提供与奖励活动相关联的一定数量的虚拟代币或货币或物品。
奖励活动系统125针对社交网络系统122的用户实现奖励系统。奖励系统可向社交网络系统122的用户提供,以执行可以向用户提供报酬的一个或多个自愿动作。自愿动作可包括例如观看视频、观看图像、阅读一些文本和/或进行调查。
图2是示出根据某些示例实施例的可存储在消息传递服务器系统108的数据库120中的数据的示意图200。尽管数据库120的内容被示出为包括多个表,但是应当理解,数据可以以其他类型的数据结构(例如作为面向对象的数据库)来存储。
数据库120包括存储在消息表214中的消息数据。实体表202存储包括实体图204的实体数据。在实体表202中为其维护记录的实体可包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息传递服务器系统108所存储的数据有关的任何实体都可以是公认的实体。每个实体具有唯一的标识符以及实体类型标识符(未示出)。
实体图204还存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是社交的、专业的(例如在同一家公司或组织中工作)、基于兴趣的或基于活动的。
消息表214可存储用户与一个或多个好友或实体之间的对话的集合。消息表214可包括每个对话的各种属性,例如参与者列表、对话的大小(例如,用户数量和/或消息数量)、对话的聊天颜色、对话的唯一标识符,以及任何其他与对话相关的功能。基于由基于网络的游戏应用调用的消息传递客户端应用104的功能,来自消息表214的信息可以以有限的形式并在有限的基础上提供给给定的基于网络的游戏应用。
数据库120还以滤镜的示例形式将注释数据存储在注释表212中。数据库120还将所接收的被注释的内容存储在注释表212中。针对其数据被存储在注释表212中的滤镜与视频(针对其数据被存储在视频表210中)和/或图像(针对其数据被存储在图像表208中)相关联并且被应用于该视频和/或图像。在一个示例中,滤镜是在向接收方用户呈现的过程中被显示为叠加在图像或视频上的叠加。滤镜可以是各种类型的,包括当发送方用户正在编写消息时,来自由消息传递客户端应用104向发送方用户呈现的滤镜库中的用户选择的滤镜。其他类型的滤镜包括可基于地理位置呈现给发送方用户的地理位置滤镜(也称为地理滤镜)。例如,基于由客户端设备102的全球定位系统(GPS)单元所确定的地理位置信息,消息传递客户端应用104可在UI内呈现特定于邻居或特定位置的地理位置滤镜。另一类型的滤镜是数据滤镜,它可基于在消息创建过程期间由客户端设备102收集的其他输入或信息,由消息传递客户端应用104选择性地将其呈现给发送方用户。数据滤镜的示例包括特定位置处的当前温度、发送方用户正在行进的当前速度、客户端设备102的电池寿命或当前时间。
可存储在注释表212内的其他注释数据是所谓的“镜头”数据。“镜头”可以是可添加到图像或视频中的实时的特殊效果和声音。
如上所述,视频表210存储视频数据,在一个实施例中,该视频数据与在消息表214内为其维护记录的消息相关联。类似地,图像表208存储与消息相关联的图像数据,其中,在消息表214内为该消息存储消息数据。实体表202可将来自注释表212的各种注释与存储在图像表208和视频表210中的各种图像和视频相关联。
游戏应用数据207存储与一个或多个基于网络的游戏应用相关联的游戏信息。这种游戏信息可包括给定的基于网络的游戏的视觉表示或图标。消息传递应用使用这种视觉表示来标识游戏并允许用户选择视觉表示来开始游戏。游戏信息可包括标识给定游戏可以托管的最大玩家数量的信息。消息传递应用使用该信息来确定从具有一定数量参与者的给定对话开始的游戏是否可以支持对话的所有参与者。游戏信息可包括每个游戏的得分信息。此类得分信息可由消息传递应用用于管理和维护特定于每个游戏和/或地理相关的排行榜。即,排行榜可代表特定地理位置中的一组用户之间或跨越消息传递应用的整个用户列表的基于网络的游戏的领导者。领导者代表得分高于其他用户的用户,但也可以使用其他属性来定义领导者(例如,比其他用户玩游戏的时间更长的用户)。
存储在游戏应用数据207中的游戏信息可存储消息传递客户端应用104的不同用户的一组用户标识符。对于每个用户标识符,游戏信息可包括针对用户安装或激活的游戏集。对于针对用户激活的每个游戏,游戏信息存储与用户相关联的访问级别。在一个实施例中,当给定用户选择升级访问级别的选项(例如,从标准访问级别到高级访问级别)时,消息传递客户端应用104促进用户与购买服务器之间的交易。在交易完成之后,存储在与游戏相关联的用户的游戏信息中的访问级别从标准访问级别更新为高级访问级别。
存储在游戏应用数据207中的游戏信息可包括每个基于网络的游戏应用的唯一标识符。基于给定用户具有的访问级别,唯一标识符可与基于网络的游戏应用的不同版本相关联。例如,唯一标识符可与对应于标准访问级别的第一版本相关联。例如,唯一标识符可与对应于高级访问级别的第二版本相关联。基于游戏应用平台124确定给定用户是否与标准或高级访问级别相关联,游戏应用平台124取得基于网络的游戏应用的适当版本。在某些实施例中,基于网络的游戏应用的相同版本可以与所有级别的访问相关联。在这种情况下,游戏应用平台124安全地向基于网络的游戏应用发送标识给定用户的所确定的访问级别的消息。然后,基于网络的游戏应用可基于在从游戏应用平台124接收的消息中指示的所确定的访问级别来选择性地启用或禁用功能。
游戏应用API函数209存储已存储在游戏应用平台124上的SDK的多个函数。游戏应用API函数209存储当API的给定函数被基于网络的游戏应用或消息传递客户端应用104调用时执行的代码。此类API函数可以包括:
·初始化基于网络的游戏应用的函数。
·设置基于网络的游戏应用的音量的函数。
·向基于网络的游戏应用提供认证令牌的函数。
·加载进程函数,它向消息传递应用指示基于网络的游戏的加载进程。
·加载完成函数,它向消息传递应用指示基于网络的游戏的加载已完成。
·获取化身图像函数,它被基于网络的游戏应用用于获取与给定用户的标识相匹配的化身。
·与好友一起玩函数,它使用消息传递应用的外观和感觉来允许用户在消息传递应用上选择用户的好友来玩。
·奖励活动相关函数,它从奖励活动系统125取得广告并跟踪用户是否完成观看给定广告或执行奖励活动。
·排行榜函数,它允许基于网络的游戏从游戏应用数据207中取得排行榜以呈现给用户。
·向排行榜提交得分函数,它允许基于网络的游戏将给定用户的得分信息发送到消息传递应用,以便在存储在游戏应用数据207中的排行榜中更新。
·添加/删除用户函数,它允许消息传递应用将用户添加到基于网络的游戏应用或从基于网络的游戏应用中删除用户。
·指示与给定用户或用户标识符相关联的访问级别的函数。
·关注函数,它允许消息传递应用通知基于网络的游戏应用用户是否在游戏中失去/重新获得关注,以便游戏知道用户在游戏中是否活跃以及用户是否可以或不能直接与游戏互动。
故事表206存储与消息以及相关联的图像、视频或音频数据的集合有关的数据,这些数据被编译成一个集合(例如故事或图库)。特定集合的创建可以由特定用户(例如在实体表202中为其维护记录的每个用户)发起。用户可以以该用户已经创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的UI可包括用户可选择的图标,以使发送方用户能够将特定内容添加到他或她的个人故事中。消息收发客户端应用104的UI可包括可选选项,以使发送用户能够将具有虚拟对象的经修改的视频剪辑添加到他或她的个人故事中。
集合还可构成“现场故事”,它是来自多个用户的内容的集合,该内容的集合是手动、自动或使用手动和自动技术的组合创建的。例如,“现场故事”可从各种位置和事件组成用户提交的内容的策展流。例如,可以经由消息传递客户端应用104的UI向其客户端设备102启用了位置服务并且处于共同位置的用户或者在特定时间处的事件呈现选项,以向特定的现场故事贡献内容。现场故事可由消息传递客户端应用104基于他或她的位置识别给用户。最终的结果是从社区角度讲的“现场故事”。
另一类型的内容集合被称为“位置故事”,其使得其客户端设备102位于特定地理位置内(例如在学院或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要二级认证,以验证最终用户属于特定组织或其他实体(例如是大学校园中的学生)。
图3是示出根据一些实施例的消息300的结构的示意图,该消息300由消息传递客户端应用104生成以用于与另一消息传递客户端应用104、消息传递服务器应用114或基于网络的游戏应用服务器107(例如,响应于在API中调用的函数)进行通信。特定消息300的内容被用于填充消息传递服务器应用114可访问的、存储在数据库120中的消息表214。类似地,消息300的内容被存储在存储器中,作为客户端设备102、基于网络的游戏应用服务器107或应用服务器112的“传输中(in-transit)”或“运行中(in-flight)”数据。消息300被示为包括以下成分:
·消息标识符302:识别消息300的唯一标识符。
·消息文本有效载荷304:将由用户通过客户端设备102的UI生成的并被包括在消息300中,或者识别给定API函数及与其参数相关联的数据的文本。消息文本有效载荷304可包括用户的访问级别和用户的用户名或标识符。
·消息图像有效载荷306:由客户端设备102的相机组件采集或从客户端设备102的存储器中取得的并被包括在消息300中的图像数据。
·消息视频有效载荷308:由相机组件采集的或从客户端设备102的存储器组件中取得的并被包括在消息300中的视频数据。
·消息音频有效载荷310:由麦克风采集的或从客户端设备102的存储器组件中取得的并被包括在消息300中的音频数据。
·消息注释312:表示要应用于消息300的消息图像有效载荷306、消息视频有效载荷308或消息音频有效载荷310的注释的注释数据(例如滤镜、贴纸(sticker)或其他增强功能)。
·消息持续时间参数314:以秒为单位指示消息300的内容(例如消息图像有效载荷306、消息视频有效载荷308,消息音频有效载荷310)要经由消息传递客户端应用104呈现给用户或使用户可以访问的时间量的参数值。
·消息地理位置参数316:与消息300的内容有效载荷相关联的地理位置数据(例如纬度和经度坐标)。多个消息地理位置参数316值可被包括在有效载荷中,这些参数值中的每一个都与内容中包括的相应的内容项相关联(例如消息图像有效载荷306内的特定图像、或消息视频有效载荷308中的特定视频)。
·消息故事标识符318:标识符值,该值标识与消息300的消息图像有效载荷306中的特定内容项相关联的一个或多个内容集合(例如“故事”)。例如,消息图像有效载荷306内的多个图像可各自使用标识符值与多个内容集合相关联。
·消息标记320:每个消息300可被标记有多个标记,每个标记指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷306中包括的特定图像描绘了动物(例如狮子)的情况下,可以在消息标记320内包括指示相关动物的标记值。标记值可基于用户输入手动生成,或者可使用例如图像识别自动生成。
·消息发送方标识符322:指示在其上生成消息300并且从其发送消息300的客户端设备102的用户的标识符(例如消息传递系统标识符、电子邮件地址,或设备标识符)。
·消息接收方标识符324:指示消息300被寻址到的客户端设备102的一个或多个用户的标识符(例如消息传递系统标识符、电子邮件地址或设备标识符)。在多个用户之间进行对话的情况下,该标识符可指示参与对话的每个用户。
消息300的各个成分的内容(例如值)可以是指向在存储内容数据值的表中的位置的指针。例如,消息图像有效载荷306中的图像值可以是指向图像表208中的位置的指针(或地址)。类似地,消息视频有效载荷308中的值可指向视频表210中存储的数据,消息注释312中存储的值可指向注释表212中存储的数据,消息故事标识符318中存储的值可指向故事表206中存储的数据,以及消息发送方标识符322和消息接收方标识符324中存储的值可指向实体表202中存储的用户记录。
图4是示出了根据示例实施例的游戏应用平台124和其他组件在执行过程400中的示例操作以促进消息传递应用和基于网络的游戏应用之间的交互的流程图。过程400可以体现在由一个或多个处理器执行的计算机可读指令中,以使得过程400的操作可以部分或全部由消息传递服务器系统108的功能组件或基于网络的游戏应用服务器107来执行;相应地,下面以参考其来举例的方式来描述过程400。然而,在其他实施例中,过程400的至少一些操作可被部署在各种其他硬件配置上。因此,过程400不旨在限于消息传递服务器系统108。
过程400可由游戏应用平台124和/或奖励活动系统125执行以安全地从消息传递应用向基于网络的应用提供与用户相关联的针对基于网络的应用的访问级别。在操作401,提供游戏应用平台124以促进消息传递应用与基于网络的应用之间的通信。例如,游戏应用平台124可存储具有各种API函数的SDK,其使得在基于网络的游戏应用服务器107上实现的基于网络的游戏应用能够访问和集成消息传递客户端应用104的功能。游戏开发者可通过从游戏应用平台124下载SDK并将SDK的函数安装在游戏代码中来访问SDK。可以在游戏代码中调用SDK的各种函数,以集成消息传递应用的各种功能(如语音派对、聊天界面、排行榜等)。类似地,消息传递客户端应用104可调用SDK的函数以向给定的基于网络的游戏应用提供一个或多个功能。
在操作402,游戏应用平台124从消息传递应用的图形用户界面接收启动基于网络的应用的请求。例如,用户可以通过图5所示的用户界面请求启动基于网络的应用。
图5示出了三个图形用户界面,其可以在一个或多个公开的实施例中由消息传递客户端应用104来实现。第一用户界面502a包括与给定的基于网络的应用(例如,基于网络的游戏应用)相关联的应用图标504。应用图标504可被呈现在消息传递客户端应用104的聊天窗口中。聊天窗口允许用户与在用户界面502a的群聊中识别的用户进行通信。响应于接收到用户对应用图标504的选择,消息传递客户端应用104呈现用户界面502b以允许用户开始游戏以与群聊中的用户一起玩。
用户界面502b包括窗口506。窗口506显示两个可选选项508a和508b。响应于接收到用户对选项508a的选择,消息传递客户端应用104移除或隐藏与应用图标504相关联的基于网络的应用。特别地,从聊天窗口移除基于网络的应用及其图标。响应于接收到用户对选项508b的选择,消息传递客户端应用104显示基于网络的游戏应用的应用简档。图5中还示出了说明性应用简档502c。应用简档502c包括关于所选游戏或基于网络的应用的描述性信息,并且还指定用户对游戏的访问级别。特别地,消息传递客户端应用104访问基于网络的应用的数据库中存储的与图标504相关联的游戏信息。
返回参考图4,在操作404,消息传递客户端应用104确定与消息传递应用的用户相关联的针对基于网络的应用的访问级别。消息传递客户端应用104从存储在数据库中的游戏信息中取得与用户相关联的针对基于网络的游戏应用的访问级别。然后,访问级别被呈现为应用简档502c的一部分。
应用简档502c包括两个选项508和510。响应于接收到用户对选项508的选择,消息传递客户端应用104取得与基于网络的游戏应用相关联的HTML5文件并启动基于网络的游戏应用。返回参考图4,在操作406,消息传递客户端应用104经由平台124或直接向基于网络的应用发送与用户相关联的访问级别。具体地,作为启动基于网络的游戏应用的一部分,消息传递客户端应用104发送具有用户标识符和所确定的用户对基于网络的游戏应用的访问级别的消息。在一些实施例中,消息被直接发送(不涉及或通过消息传递服务器系统108)到基于网络的游戏应用。在一些实施例中,消息经由平台124(通过消息传递服务器系统108)发送到基于网络的游戏应用。
在一些实施例中,基于网络的游戏应用使用用户标识符来搜索远程数据库(例如,与基于网络的游戏应用相关联的游戏应用服务器)以获取用户的访问级别。以此方式,基于网络的游戏应用可通过将从消息传递客户端应用104接收的消息中指定的访问级别与存储在远程数据库中的用户的访问级别进行比较来验证从消息传递客户端应用104接收的消息中指定的访问级别是否被批准。游戏应用服务器可直接或经由消息传递服务器系统108与消息传递客户端应用104通信以验证与所提供的用户标识符相关联的访问级别。
在操作408,游戏应用平台124提供对基于网络的应用的第一功能集的访问,第一功能集与跟用户相关联的访问级别相关联。例如,在一个实施例中,选项508与游戏应用的标准访问级别版本相关联。在这种情况下,游戏应用的标准访问级别版本由消息传递客户端应用104取得并开始,其中消息指示针对用户确定的访问级别。在另一个实施例中,选项508与跟所有访问级别相关联的应用版本相关联。在这种情况下,消息传递客户端应用104访问应用的版本并启动应用,包括发送指定用户对基于网络的应用的访问级别的消息。基于所取得的应用版本和/或基于指示用户的访问级别的消息,启用基于网络的应用的不同功能以供访问。
在消息传递客户端应用104和基于网络的应用之间交换的以上和以下讨论的任何通信或消息可以在消息传递客户端应用104和基于网络的应用(或与基于网络的应用相关联的服务器)之间直接地发送或交换,和/或通过消息传递服务器系统108间接地发送或交换。
在一些实施例中,响应于接收到用户对选项510的选择,消息传递客户端应用104允许用户升级游戏的当前访问级别(例如,从标准访问级别到高级访问级别)。用户可通过购买对升级的访问级别的权限和/或通过观看一个或多个广告或奖励视频来升级访问级别。在选择选项510时,用户可向社交网络系统122提交支付,这有助于向第三方应用服务器支付。在成功完成支付交易后,社交网络系统122升级与用户相关联的访问级别。在一些实施例中,当与用户相关联的访问级别是指定的访问级别时(例如,如果用户与高级访问级别相关联),则选项510可不被呈现在应用简档502c中。在这种情况下,对选项508的选择导致相应的基于网络的应用在启用高级访问级别功能的情况下开始。
图6示出了可以在一个或多个所公开的实施例中实现的组件之间的消息流。图6将消息传递客户端应用104的两个实例显示为104a和104b。图6还示出了消息传递服务器系统108的实例。消息传递客户端应用104a和104b的每个实例包括应用配置组件604a-b和应用运行时组件606a-b。每个消息传递客户端应用104a和104b还分别包括网络视图应用实例607a-b。
消息传递服务器系统108包括管理应用配置组件602和应用状态管理组件608。
图6示出了管理应用配置组件602将配置数据605写入数据库120。配置数据605可存储关于一个或多个应用(例如,具有实例607a-b的网络视图应用)的信息。配置数据605还可指示应用的可配置功能。例如,配置数据605可指示应用可在多少模式或版本中执行。例如,在一些方面,配置数据605可指示特定应用是否在减少的功能版本和更增强的功能版本中可用。例如,减少的功能版本可提供n个功能,而增强的功能版本可包括n+C个功能(其中C是正常数)。每个版本也可由配置数据605指定为与不同的访问级别相关联。每个版本还可指定从一个访问级别升级到另一个访问级别所需的标准(例如,需要消费多少奖励视频和/或用户需要支付多少钱)。
在应用被管理应用配置组件602配置之后,该应用可变得可用于经由消息传递客户端应用104在客户端设备102上执行。因此,该应用可出现在由应用配置组件604a-b中的每个应用配置组件实现的用户界面上以供执行。应用的用户特定功能然后可以由分别与客户端消息传递应用104a-b一起运行的应用配置组件604a-b来配置。因此,管理应用配置组件602可配置应用的适用于所有用户的“全局”方面。然后,应用的行为可由客户端设备102的每个用户经由他们相应的应用配置组件604来定制。每个客户端消息传递应用104a-b然后可分别经由应用运行时组件606a-b执行该应用(例如,实例607a-b中的一个或多个)。当应用正在执行时,两个应用运行时组件606a-b都与在消息传递服务器系统108内运行的应用状态管理组件608接口连接。应用状态管理组件维护应用的全局状态。
全局状态可包含多种数据。例如,在面向数据库的应用中,例如电子商务应用,全局状态可包括存储在数据库中的库存量数据。在面向游戏的应用中,全局状态可指示例如游戏中一个或多个玩家在虚拟空间内的位置。作为一个示例,如果分别访问应用运行时组件606a-b的两个用户都在运行游戏应用,则这两个用户都可体验到在两个用户之间相同的游戏的某些状态信息。例如,两个用户中的第一用户在虚拟环境中的位置可被显示给两个用户中的第一用户和第二用户。也可以通过第一用户和第二用户相应的应用运行时组件606a-b向第一用户和第二用户显示第二用户的第二位置。也可以共享其他状态信息。例如,在游戏应用中,游戏内发生的状态或当前活动可被包括在共享状态信息中。例如,如果第一用户在游戏中部署了武器,则该信息对于第二用户是可见的。由应用状态管理组件608管理的状态信息还可包括用户特定的状态信息。例如,在游戏应用实施例中,参与游戏的每个玩家/用户可用的生命点数量是每个用户特定的,但可以由应用状态管理组件608存储。应用状态管理组件608可依赖于数据库120保存它维护的状态信息的任何部分。
注意,网络视图应用实例607a-b在第一安全域内运行,而应用运行时组件606a-b在第二安全域内运行。第一安全域不能访问对在第二安全域内运行的应用运行时组件606a-b可用的数据。在一些实施例中,应用运行时组件606a-b与数据库120通信以确定与用户(例如,消息传递客户端应用104a的用户)相关联的访问级别。应用运行时组件606a-b然后经由游戏应用平台124向网络视图应用607a-b发送指示所确定的用户访问级别的安全消息。网络视图应用607a-b然后可以使用用户标识符来查询另一个数据库或同一数据库120以获得用户的访问级别,从而与从应用运行时组件606a-b接收的消息中指定的访问级别进行比较。
注意,网络视图应用实例607a可以以与网络视图应用实例607b不同的被启用/禁用的功能或选项运行。即使两个网络视图应用实例607a-b是相同的应用(例如,如下文进一步讨论的,它们具有相同的应用标识符),情况也可能如此。因此,例如,网络视图应用607a可启用更有限的第一功能集,而网络视图应用607b启用更广泛的第二功能集。网络视图实例607a-b二者可使用它们相应的应用运行时组件606a-b的实例来操作,但是二者可共享由应用状态管理组件608管理的相同应用状态。因此,应用的两个版本可在所公开的实施例中共享相同的应用状态。具体地,网络视图应用实例607a可使用与标准访问级别相关联的功能集运行,因为应用运行时组件606a在消息中指示消息传递客户端应用104a的用户针对该特定应用与其标准访问级别相关联。网络视图应用实例607b可使用与高级访问级别相关联的不同功能集运行,因为应用运行时组件606b在消息中指示消息传递客户端应用104b的用户针对该特定应用与高级访问级别相关联。
图7示出了可在一个或多个所公开的实施例中实现的图形用户界面。图形用户界面700在一些方面可通过被包括在管理应用配置组件602中的指令来实现。在一些方面,用户界面仅可由具有社交网络系统122的管理安全凭证的用户访问。
用户界面700包括可滚动列表框705。可滚动列表框705包括三列710a、710b和710c。列710a示出了被配置为在计算环境内运行的应用列表,例如社交网络系统122提供的计算环境。列710b示出了列710a中列出的每个应用所支持的多个模式或版本。例如,第一应用可支持缩减的功能集版本和更大的功能集版本,其中缩减的功能集与第一访问级别(例如,标准访问级别)相关联,并且更大的功能集与第二访问级别(例如,高级访问级别)相关联。第二应用可只支持一个版本,其中,一个版本为所有用户提供一致的功能集。
列710c显示列表框705中列出的每个应用是否支持动态功能。例如,可以在用户开始与应用交互后有条件地启用动态功能。作为一个示例,动态功能可包括在用户满足一个或多个标准之后向应用的用户提供的一个或多个新功能。例如,在一些方面,在用户成为社交网络系统122的成员达阈值时间段之后,他们可能变得有资格获得应用的扩展功能集。即,可基于用户已经成为社交网络系统122的成员的时间量并且具体地如果时间量超过阈值时间段来升级用户的访问级别。或者,在支付费用后,用户可能有资格获得应用的扩展功能集和升级的访问级别。
用户界面700还包括控件715,例如按钮,其提供添加或配置附加应用的方法。在添加或配置附加应用之后,新应用可被列在列表框705中。
图8示出了可以在一个或多个所公开的实施例中实现的用户界面800。在一些方面,如上文关于图7所讨论的,响应于对控件715的选择,可以显示用户界面800。用户界面800可通过管理应用配置组件202中的指令来显示。在一些方面,可能需要管理特权来运行和/或显示用户界面800。
用户界面800包括应用名称字段802、应用文件名称框805和上传控件810。应用名称字段802促进应用的应用“友好”名称的输入。当用户选择和/或运行应用时,可以向用户显示友好名称并作为界面502c的一部分显示。
应用文件名框805为管理用户提供了用于识别实现应用的代码的机制。在一些方面,应用可以在网络视图内执行,例如上面关于图6讨论的网络视图实例607a-b。在上传应用时,应用变得可由应用运行时组件606a-b运行。
用户界面800还包括可滚动列表框815。列表框815列出可在名称字段802中标识的应用内动态启用和/或禁用的功能。功能可经由控件820添加和经由控件830删除。
图9是可在至少一些所公开的实施例中实现的用户界面。用户界面900可由管理应用配置组件202显示。在一些方面,用户界面900可能需要管理特权来被用户显示/使用。
用户界面900包括功能名称字段905、功能id字段910、默认状态字段915、用户可配置字段920、启用成本字段925和两个控件930和935。功能名称字段905为由用户界面900添加的功能提供名称。输入到功能名称字段905中的名称可在菜单中被显示给用户。例如,可以向运行提供添加或删除功能的机制的应用的用户呈现菜单。功能id字段910定义了可以传递给诸如网络视图应用的应用以识别功能的标识符。例如,社交网络系统122可对功能配置网络视图应用并通过功能id 910来识别功能。默认状态字段915被实现为用户界面900中的无线电控件。默认状态字段915指示在用户界面900中(例如,通过功能ID 910)标识的功能被默认为开启还是关闭。例如,默认状态字段915定义在第一次为特定用户运行应用时启用该功能,还是为具有标准访问级别的用户启用该功能。用户可配置字段920定义用户是否可以修改由UI 900(例如通过功能id字段910)标识的功能。启用成本字段925定义启用由用户界面900(例如通过功能id字段910)标识的功能或升级针对功能的访问级别所必需的真实或虚拟货币的量。
图10示出了可以在至少一些所公开的实施例中实现的用户界面1000。用户界面1000示出了在被消息传递客户端应用104启动之后运行的示例应用1001。用户界面1000包括被显示在屏幕右下方的表。表1002包括三列1005a-c。表1002提供应用1001内的功能的动态配置。来自表1002的数据可以从列表框815获得,如上面关于图8所讨论的。
例如,表的每一行可代表经由用户界面900配置的应用1001的功能,如上面关于图9所讨论的。列1005a指示可选择性地用应用1001基于用户的访问级别来启用或禁用的功能名称。列1005b指示为了启用该功能而必须满足的一个或多个标准。列1005b中列出的标准可代表应用1001的不同访问级别。例如,如上所述,一个标准可评估用户成为社交网络系统122成员的时间长度是否高于阈值。另一个标准可评估用户是否已经提交了预定义数量的虚拟或真实货币来使用消息传递客户端应用104对该功能付费。另一个标准可以是用户是否已经与社交网络上的其他用户共享了阈值数量的内容。另一个标准可以是用户是否消费了一定数量的奖励视频。
列1005c可包括用于选择性地启用或禁用在行中标识的功能的控件。如果当用户通过列1005c中的控件选择启用功能时,列1005b中标识的标准未被满足,则可生成一个或多个提示。例如,如果用户尚未支付启用该功能所需的金额,则可生成支付提示。或者,如果用户不能满足列1005b中指示的标准,例如,要求作为社交网络成员的最少时间量的标准,则可显示指示用户不能启用该功能的通知。
图11示出了可以在一个或多个所公开的实施例中实现的示例数据结构。下面关于图11讨论的数据结构被描述为关系数据库表结构。然而,本领域技术人员将理解,这些数据结构可以使用本领域已知的多种技术来实现,例如通过诸如链表、数组、图形、树或其他数据结构的存储器数据结构。或者,可以在非结构化数据存储中或使用其他方法来实现数据结构。
应用表1100包括应用标识符字段1102、文件名字段1104和应用状态字段1106。应用标识符字段1102唯一地标识特定应用。文件名字段1104定义了存储定义应用的代码或指令的文件。应用状态字段1106存储应用状态信息。状态信息可以是全局状态信息或用户特定状态信息。在一些方面,状态信息1106还可包括配置信息。状态信息1106可由应用状态管理组件608来管理。
功能表1110定义了可以为应用表1100中列出的每个应用动态配置的功能。功能表1110包括应用标识符1111。应用标识符1111可以与应用标识符1102交叉引用。功能表1110还包括功能标识符1112。功能标识符1112可标识应用的功能。功能标识符1112可存储对应于在用户界面900的字段910中提供的功能标识符的值。用户可配置字段1114指示该功能是否可以由用户配置。存储的用户可配置字段1114的值可以由上面关于图9讨论的字段920提供。默认状态字段1116指示当用户最初运行应用(例如1111)时在什么状态下提供功能。例如,字段1116可指示该字段最初是启用还是禁用。字段1118指示在能够启用该功能之前必须满足的一个或多个标准。该标准可包括以下一项或多项:支付金额、用户已经成为社交网络成员的阈值时间段、用户在先前定义的时间段期间在社交网络上共享的内容的阈值量,或者其他标准。
账户表1120包括账户标识符1122、认证证书1124和访问特权字段1126。账户标识符1122唯一地标识账户。例如,账户标识符1122可以唯一地标识社交网络系统122的账户。认证凭证字段1124存储由账户标识符1122标识的账户的认证凭证,例如账户名称和/或账户密码。访问特权字段1126存储指示哪些访问特权与账户相关联的数据。例如,访问特权字段1126可指示账户是否具有对社交网络系统122的资源的管理访问。
账户特定功能配置表1130包括账户标识符1132、应用标识符1134、功能标识符1136和功能配置字段1138。账户标识符字段1132可以与账户标识符字段1122交叉引用。应用标识符字段1134可以与应用标识符字段1111和/或1102交叉引用。功能标识符字段1136可以与功能id字段1112交叉引用。功能配置1138指示如何针对由账户标识符1132标识的特定账户来配置功能。例如,功能配置1138可指示二进制值,例如功能是打开还是关闭(启用/禁用),或者自然值,例如指示账户可用的生命点数量的整数值。账户标识符1132可指定消息传递客户端应用104的用户的用户标识符以及由消息传递客户端应用104为特定用户的特定应用确定的访问级别。账户标识符1132由消息传递客户端应用104发送到基于网络的应用以向基于网络的应用指示用户的访问级别。然后,基于网络的应用可基于图10中的标准指定的访问级别选择性地启用功能。
软件架构
图12是示出示例软件架构1206的框图,该示例软件架构1206可以与本文所述的各种硬件架构结合使用。图12仅是软件架构的非限制性示例,并且将理解,可以实现多个其他架构以促进本文描述的功能。软件架构1202可以在诸如图13的机器1300的硬件上执行,机器1300尤其包括处理器1304、存储器/存储装置1306和I/O组件1318等。代表性硬件层1252被示出并且可以表示例如图13的机器1300。代表性硬件层1252包括具有相关联的可执行指令1204的一个或多个处理单元1254。可执行指令1204表示软件架构1206的可执行指令,包括在此描述的方法、组件等的实现。硬件层1252还包括也具有可执行指令1204的存储器和/或存储装置1256。硬件层1252还可包括其他硬件1258。
如在此所使用的,术语“组件”是指具有边界的设备、物理实体或逻辑,该边界由提供对特定处理或控制功能的分区或模块化的功能或子例程调用、分支点、API或其他技术来定义。组件可通过它们与其他组件的接口进行组合以执行机器过程。组件可以是被设计为与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用的经封装的功能硬件单元。
组件可构成软件组件(例如体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或设置。在各种示例实施例中,一个或多个计算机系统(例如独立计算机系统、客户端计算机系统,或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如处理器或一组处理器)可以由软件(例如应用或应用部分)配置为操作以执行本文所述的某些操作的硬件组件。硬件组件也可机械地、电子地或其任何合适的组合来实现。例如,硬件组件可包括被永久性地配置为执行某些操作的专用电路或逻辑。
硬件组件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可包括可编程逻辑或电路,其由软件临时配置为执行某些操作。例如,硬件组件可包括由通用处理器或其他可编程处理器执行的软件。在由此类软件进行配置之后,硬件组件变成专门被定制以执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。可以理解,机械地在专用和永久配置的电路中或者在临时配置的电路中(例如由软件配置的)实现硬件组件的决定可以由成本和时间考虑来驱动。
“处理器”是指或者包括根据控制信号(例如“命令”、“操作码”、“机器码”等)操纵数据值并产生适用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑来仿真的物理电路)。处理器可以例如是中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)或其任意组合。处理器可进一步是具有可同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
因此,短语“硬件组件”(或“硬件实现的组件”)应理解为包括有形实体,其是物理构造的、永久配置的(例如硬连线的)或临时配置的(例如编程的),以某种方式操作或执行本文所述的某些操作的实体。考虑到其中硬件组件被临时配置(例如编程)的实施例,每个硬件组件不需要在任何时刻被配置或实例化。例如,在硬件组件包括由软件配置为成为专用处理器的通用处理器的情况下,通用处理器可在不同时间被分别配置为不同的专用处理器(例如包括不同的硬件组件)。因此,软件对应地配置特定处理器或处理器,例如以在一个时刻构成一个特定硬件组件,而在另一个不同时刻构成另一个不同硬件组件。硬件组件可向其他硬件组件提供信息并从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信耦接的。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间的信号传输(例如通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过在多个硬件组件可以访问的存储器结构中存储和取得信息来实现此类硬件组件之间的通信。
例如,一个硬件组件可执行操作并将该操作的输出存储在其通信耦接到的存储器设备中。然后,另一硬件组件可以在稍后的时间访问该存储器设备以取得和处理所存储的输出。硬件组件还可发起与输入或输出设备的通信,并且可以在资源(例如信息的集合)上进行操作。本文所述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,此类处理器都可以构成处理器实现的组件,该组件操作以执行本文所述的一个或多个操作或功能。如本文中所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中特定的处理器或处理器是硬件的示例。例如,一种方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件执行。
此外,一个或多个处理器还可操作以在“云计算”环境中或作为“软件即服务”(SaaS)来支持相关操作的执行。例如,操作中的至少一些操作可由一组计算机来执行(作为包括处理器的机器的示例),其中这些操作可以经由网络(例如互联网)以及经由一个或多个适当的接口(例如API)来访问。某些操作的执行可分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,处理器或处理器实现的组件可位于单个地理位置中(例如在家庭环境、办公室环境,或服务器场中)。在其他示例实施例中,处理器或处理器实现的组件可分布在多个地理位置上。
在图12的示例架构中,软件架构1206可以被概念化为层的堆叠,其中每个层提供特定的功能。例如,软件架构1206可包括诸如操作系统1202、库1220、框架/中间件1218、应用1216、和呈现层1214的层。在操作上,这些层内的应用1216或其他组件可通过软件堆栈来调用API调用1208,并且接收作为消息1212的响应。所示出的层本质上是代表性的,并非所有软件架构都具有所有层。例如,某些移动或专用操作系统可能不提供框架/中间件1218层,而其他操作系统可提供此类层。其他软件架构可包括附加的或不同的层。
操作系统1202可管理硬件资源并提供公共服务。操作系统1202可包括例如内核1222、服务1224和驱动器1226。内核1222可以充当硬件和其他软件层之间的抽象层。例如,内核1222可负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全性设置等。服务1224可为其他软件层提供其他公共服务。驱动器1226负责控制底层硬件或与底层硬件接口连接。例如,驱动器1226包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(USB)驱动器)、驱动器、音频驱动器、电源管理驱动器等,取决于硬件配置。
库1220可提供可被应用1216和/或其他组件和/或层使用的公共基础结构。库1220通常提供如下功能:允许其他软件组件以比通过直接与基础操作系统1202功能(例如内核1222、服务1224、和/或驱动器1226)接口连接更容易的方式执行任务。库1220可包括系统库1244(例如C标准库),该系统库1224可提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。此外,库1220可包括诸如媒体库的API库1246(例如,用于支持各种媒体格式(例如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG)的呈现和操作的库)、图形库(例如,可用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、网络库(例如,可提供网络浏览功能的WebKit),等。库1220还可包括各种各样的其他库1248,以向应用1216和其他软件组件/模块提供多个其他API。
框架/中间件1218提供可由应用1216和/或其他软件组件/模块使用的高级通用基础设施。例如,框架/中间件1218可提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架/中间件1218可提供可被应用1216和/或其他软件组件/模块使用的广泛的其他API,其中一些可能是特定于特定操作系统1202或平台的。
应用1216包括内置应用1238和/或第三方应用1240。代表性内置应用1238的示例可包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用,和/或游戏应用。第三方应用1240可包括由特定平台的卖方以外的实体使用AndroidTM或iOSTM软件开发工具包(SDK)开发的应用,可以是在移动操作系统(例如iOSTM、AndroidTM、Phone或其他移动操作系统)上运行的移动软件。第三方应用1240可以调用由移动操作系统(诸如操作系统1202)提供的API调用1208,以促进本文描述的功能。
应用1216可利用内置的操作系统功能(例如内核1222、服务1224和/或驱动器1226)、库1220和框架/中间件1218来创建用户界面以与系统的用户进行交互。替代地或附加地,在一些系统中,与用户的交互可通过诸如呈现层1214的呈现层发生。在这些系统中,可将应用/组件“逻辑”与跟用户交互的应用/组件的各方面分开。
示例性机器
图13示出了根据一些示例性实施例的机器1300的组件(在此也被称为“模块”)的框图,该组件能够从机器可读介质(例如,机器可读存储介质)读取指令,并执行本文所讨论的方法中的任何一个或多个。具体地,图13示出了具有计算机系统的示例形式的机器1300的图解表示,在其中可以执行用于使机器1300执行本文讨论的任何一种或多种方法的指令1310(例如软件、程序、应用、小应用、应用程序或其他可执行代码)。这样,指令1310可用于实现本文描述的模块或组件。指令1310将通用的、未编程的机器1300转换为被编程为以所描述的方式执行所描述和示出的功能的特定机器1300。在替代实施例中,机器1300作为独立设备运行,或者可耦接(例如联网)到其他机器。在网络部署中,机器1300可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。机器1300可包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能电器)、其他智能设备、网络家电、网络路由器、网络交换机、网桥,或能够依次或以其他方式执行指令1310的任何机器,这些指令指定了机器1300要采取的动作。此外,尽管仅示出了单个机器1300,但术语“机器”还应认为为包括单独地或共同地执行指令1310以执行本文讨论的方法中的任何一个或多个方法的机器的集合。
机器1300可包括处理器1304、存储器/存储装置1306和I/O组件1318,它们可以被配置为例如经由总线1302彼此通信。存储器/存储装置1306可包括存储器1314,(诸如,主存储器,或其它存储器存储装置)和存储单元1316,它们都可以诸如经由总线1302被处理器1304访问。存储单元1316和存储器1314存储体现本文所述方法或功能中的任何一个或多个的指令1310。在由机器1300执行期间,指令1310还可全部或部分地驻留在存储器1314内、存储单元1316内、处理器1304中的至少一个处理器内(例如在处理器的高速缓冲存储器内)或其任何组合。因此,存储器1314,存储单元1316和处理器1304的存储器是机器可读介质的示例。
如在此所使用的,术语“机器可读介质”、“计算机可读介质”等是指能够临时或永久存储指令和数据的组件、设备或其他有形介质。此类介质的示例可包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存、其他类型的存储装置(例如可擦除可编程只读存储器(EPROM))和/或其任何合适的组合。术语“机器可读介质”应被认为包括能够存储指令的单个介质或多个介质(例如集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储由机器执行的指令(例如代码)使得指令在由机器的一个或多个处理器执行时使得机器执行本文描述的任何一种或多种方法的任何介质或多种介质的组合。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”不包括信号自身。
I/O组件1318可以包括各种各样的组件,以提供用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的用户界面。包括在特定机器1300的用户界面中的特定I/O组件1318将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他此类输入机构,而无头(headless)服务器机器将可能不包括此类触摸输入设备。应当理解,I/O组件1318可包括在图13中未示出的多个其他组件。仅出于简化下面讨论的目的,根据功能对I/O组件1318进行分组,并且分组绝不是限制性的。在各种示例性实施例中,I/O组件1318可包括输出组件1326和输入组件1328。输出组件1326可包括视觉组件(例如显示器,诸如,等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪,或阴极射线管(CRT))、声学组件(例如扬声器)、触觉组件(例如振动马达、电阻机构)、其他信号发生器等。输入组件1328可包括字母数字输入组件(例如键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触知输入组件(例如物理按钮、提供触摸的位置和/或力或触摸手势的触摸屏,或其他触知输入组件)、音频输入组件(例如麦克风)等。输入组件1328还可包括一个或多个图像采集设备,诸如用于生成数字图像和/或视频的数码相机。
在进一步的示例性实施例中,I/O组件1318可包括生物特征组件1330、运动组件1334、环境组件1336或位置组件1338以及各种各样的其他组件。例如,生物特征组件1330可包括用于检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如血压、心率、体温、汗水或脑波)、识别人(例如语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1334可包括加速度传感器组件(例如加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1336可包括例如照明传感器组件(例如光度计)、温度传感器组件(例如检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如一个或多个检测背景噪声的麦克风)、接近度传感器组件(例如检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测有害气体的浓度或测量大气中的污染物的气体检测传感器)、或可提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件1338可包括位置传感器组件(例如GPS接收器组件)、高度传感器组件(例如检测可从哪个高度获得该空气压力的高度计或气压计)、取向传感器组件(例如磁力计)等。
可使用多种技术来实现通信。I/O组件1318可包括通信组件1340,该通信组件1340可操作以分别经由耦接(coupling)1324和耦接1322将机器1300耦接到网络1332或设备1320。例如,通信组件1340可包括网络接口组件或与网络1332接口连接的其它合适的设备。在进一步的示例中,通信组件1340可包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如低能耗)、组件和经由其它形态提供通信的其他通信组件。设备1320可以是另一机器或各种各样的外围设备(例如经由USB耦接的外围设备)中的任何一个。
此外,通信组件1340可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1340可包括射频识别(RFID)标签读取器组件、NFC智能标记检测组件、光学读取器组件(例如用于检测诸如通用产品代码(UPC)条形码的一维条形码、多维条形码(例如快速响应(QR)码、Aztec码、数据矩阵、数字图形、最大码、PDF4111、超码、UCC RSS-2D条形码)和其他光学码的光学传感器),或声学检测组件(例如用于识别所标记的音频信号的麦克风)。另外,可以经由通信组件1340来获得各种信息,例如经由互联网协议(IP)地理位置来获得位置、经由信号三角测量来获得位置、经由检测可指示特定位置的NFC信标信号来获得位置等。
在使用类似于“A、B或C中的至少一个”、“A、B和C中的至少一个”、“A、B或C中的一个或多个”或“A、B和C中的一个或多个”的短语的情况下,其旨在将该短语解释为表示在实施例中可以单独存在A,在实施例中可以单独存在B,在实施例中可以单独存在C,或者在单个实施例中可以存在元素A、B和C的任意组合;例如,可以存在A和B、A和C、B和C、或者A和B和C。
在不脱离本公开的范围的情况下,可以对所公开的实施例进行改变和修改。这些和其他改变或修改旨在被包括在如以下权利要求中所表达的本公开的范围内。
Claims (20)
1.一种方法,包括:
由一个或多个处理器提供促进消息传递应用与基于网络的应用之间的通信的平台;
由所述一个或多个处理器从所述消息传递应用的图形用户界面接收启动所述基于网络的应用的请求;
由所述消息传递应用确定与所述消息传递应用的用户相关联的针对所述基于网络的应用的访问级别;
由所述消息传递应用向所述基于网络的应用发送与所述用户相关联的访问级别;以及
由所述一个或多个处理器提供对所述基于网络的应用的与所述用户相关联的访问级别相关联的第一功能集的访问。
2.根据权利要求1所述的方法,其中,所述访问级别经由由消息传递服务器实现的平台来发送,并且其中,所述基于网络的应用包括基于网络的游戏应用。
3.根据权利要求1所述的方法,其中,所述访问级别包括高级访问级别,其中,所述基于网络的应用的所述第一功能集针对所述高级访问级别被激活,并且针对标准访问级别被去激活。
4.根据权利要求1所述的方法,还包括:
确定所述访问级别是标准访问级别;以及
响应于确定所述访问级别是所述标准访问级别,生成针对所述基于网络的应用将所述访问级别升级到高级访问级别的第一选项以在所述消息传递应用的所述图形用户界面中显示。
5.根据权利要求4所述的方法,其中,所述图形用户界面包括所述第一选项和基于所述标准访问级别启动所述基于网络的游戏应用的第二选项。
6.根据权利要求4所述的方法,还包括:
接收用户对所述第一选项的选择;
使用所述消息传递应用完成与第三方来源的针对高级访问级别的购买交易;以及
在所述消息传递应用的用户账户中存储已完成针对所述高级访问级别的购买交易的指示。
7.根据权利要求1所述的方法,还包括:
通过所述消息传递应用识别基于网络的应用的与所述访问级别相关联的版本;
响应于确定所述访问级别是第一访问级别,由所述消息传递应用启动所述基于网络的应用的第一版本;以及
响应于确定所述访问级别是第二访问级别,由所述消息应用启动所述基于网络的应用的第二版本。
8.根据权利要求7所述的方法,其中,所述基于网络的应用的所述第一版本和所述基于网络的应用的所述第二版本访问由所述消息传递应用维护的公共应用状态数据。
9.根据权利要求1所述的方法,其中,响应于确定所述访问级别是第一访问级别,所述基于网络的应用提供所述基于网络的应用的第一版本,并且其中,响应于确定所述访问级别是第二访问级别,所述基于网络的应用提供所述基于网络的应用的第二版本。
10.根据权利要求1所述的方法,其中,所述第一功能集包括所述基于网络的应用的可用于第一访问级别并且不可用于第二访问级别的级别集合。
11.根据权利要求1所述的方法,其中,所述第一功能集包括所述基于网络的应用的可用于无广告的第一访问级别和可用于有广告的第二访问级别的级别集合。
12.根据权利要求1所述的方法,其中,所述第一功能集包括在所述基于网络的应用中针对第一访问级别获得奖励的第一速率,并且,所述第一速率不同于在所述基于网络的应用中针对第二访问级别获得奖励的第二速率。
13.根据权利要求1所述的方法,还包括:
确定所述访问级别是高级访问级别;以及
响应于确定所述访问级别是所述高级访问级别,生成启动所述基于网络的应用的选项以在所述消息传递应用的所述图形用户界面中显示,其中,所述图形用户界面在所确定的访问级别是所述高级访问级别时排除升级所述访问级别的选项。
14.根据权利要求1所述的方法,还包括:
由所述基于网络的应用访问远程数据库,所述远程数据库中存储了所述用户与所述访问级别之间的关联;以及
从所述数据库中取得与所述用户相关联的访问级别,以验证所取得的访问级别与从所述消息传递应用接收到的访问级别相匹配。
15.根据权利要求1所述的方法,其中,提供所述平台包括:
在服务器上存储与所述消息传递应用相关联的应用程序接口API;以及
通过JavaScript bridge在所述消息传递应用与所述基于网络的应用之间建立两个单向的异步通信信道,其中,所述API的由所述基于网络的应用或所述消息传递应用调用的函数作为消息在所述异步通信信道上发送,以使得每个API函数调用作为消息发送,每个API函数的回调通过构造唯一的回调标识符并发送带有所述回调标识符的消息来发送。
16.根据权利要求1所述的方法,还包括:
响应于经由所述平台从所述基于网络的应用接收到对认证令牌的请求,经由所述平台向所述基于网络的应用提供所述认证令牌,其中,所述认证令牌在预定时间段之后到期;以及
所述基于网络的应用使用所述认证令牌来处理数据。
17.根据权利要求1所述的方法,还包括:当从与所述消息传递应用不同的应用启动所述基于网络的应用时,防止所述基于网络的应用被授权。
18.根据权利要求1所述的方法,还包括:经由所述平台从所述消息传递应用启动所述基于网络的应用。
19.一种系统,包括:
被配置为执行操作的处理器,所述操作包括:
提供促进消息传递应用与基于网络的应用之间的通信的平台;
从所述消息传递应用的图形用户界面接收启动所述基于网络的应用的请求;
由所述消息传递应用确定与所述消息传递应用的用户相关联的针对所述基于网络的应用的访问级别;
由所述消息传递应用向所述基于网络的应用发送与所述用户相关联的访问级别;以及
提供对所述基于网络的应用的与所述用户相关联的访问级别相关联的第一功能集的访问。
20.一种非暂时性机器可读存储介质,包括指令,所述指令在由机器的一个或多个处理器执行时使得所述机器执行操作,所述操作包括:
提供促进消息传递应用与基于网络的应用之间的通信的平台;
从所述消息传递应用的图形用户界面接收启动所述基于网络的应用的请求;
由所述消息传递应用确定与所述消息传递应用的用户相关联的针对所述基于网络的应用的访问级别;
由所述消息传递应用向所述基于网络的应用发送与所述用户相关联的访问级别;以及
提供对所述基于网络的应用的与所述用户相关联的访问级别相关联的第一功能集的访问。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962789823P | 2019-01-08 | 2019-01-08 | |
US62/789,823 | 2019-01-08 | ||
US16/408,036 | 2019-05-09 | ||
US16/408,036 US11153238B2 (en) | 2019-01-08 | 2019-05-09 | Dynamic application configuration |
PCT/US2020/012735 WO2020146496A1 (en) | 2019-01-08 | 2020-01-08 | Dynamic application configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113302586A true CN113302586A (zh) | 2021-08-24 |
CN113302586B CN113302586B (zh) | 2024-07-09 |
Family
ID=71405348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080008272.XA Active CN113302586B (zh) | 2019-01-08 | 2020-01-08 | 动态应用配置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11153238B2 (zh) |
EP (1) | EP3908921A1 (zh) |
CN (1) | CN113302586B (zh) |
WO (1) | WO2020146496A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606320B2 (en) | 2019-01-08 | 2023-03-14 | Snap Inc. | Dynamic application configuration |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3108351B1 (en) | 2014-05-30 | 2019-05-08 | Apple Inc. | Activity continuation between electronic devices |
US10372298B2 (en) | 2017-09-29 | 2019-08-06 | Apple Inc. | User interface for multi-user communication session |
DK180130B1 (da) | 2018-05-07 | 2020-06-02 | Apple Inc. | Multi-participant live communication user interface |
US11128792B2 (en) | 2018-09-28 | 2021-09-21 | Apple Inc. | Capturing and displaying images with multiple focal planes |
CA3084976A1 (en) * | 2019-07-01 | 2021-01-01 | Next Pathway Inc. | System and method for automated source code generation to provide service layer functionality for legacy computing systems in a service-oriented architecture |
US11079913B1 (en) | 2020-05-11 | 2021-08-03 | Apple Inc. | User interface for status indicators |
US11698822B2 (en) | 2020-06-10 | 2023-07-11 | Snap Inc. | Software development kit for image processing |
US11604562B2 (en) | 2020-06-10 | 2023-03-14 | Snap Inc. | Interface carousel for use with image processing software development kit |
US11546277B2 (en) * | 2020-09-09 | 2023-01-03 | Snap Inc. | Third-party resource coordination |
US12039499B2 (en) | 2020-09-30 | 2024-07-16 | Snap Inc. | Augmented reality content generators for identifying destination geolocations and planning travel |
US11538225B2 (en) | 2020-09-30 | 2022-12-27 | Snap Inc. | Augmented reality content generator for suggesting activities at a destination geolocation |
US11836826B2 (en) * | 2020-09-30 | 2023-12-05 | Snap Inc. | Augmented reality content generators for spatially browsing travel destinations |
US11809507B2 (en) | 2020-09-30 | 2023-11-07 | Snap Inc. | Interfaces to organize and share locations at a destination geolocation in a messaging system |
US11431891B2 (en) | 2021-01-31 | 2022-08-30 | Apple Inc. | User interfaces for wide angle video conference |
US11907605B2 (en) | 2021-05-15 | 2024-02-20 | Apple Inc. | Shared-content session user interfaces |
US11449188B1 (en) | 2021-05-15 | 2022-09-20 | Apple Inc. | Shared-content session user interfaces |
US11893214B2 (en) | 2021-05-15 | 2024-02-06 | Apple Inc. | Real-time communication user interface |
WO2023281635A1 (ja) * | 2021-07-06 | 2023-01-12 | ガンホー・オンライン・エンターテイメント株式会社 | 処理装置、プログラム及び方法 |
US11770600B2 (en) | 2021-09-24 | 2023-09-26 | Apple Inc. | Wide angle video conference |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652077A (zh) * | 2004-02-05 | 2005-08-10 | 微软公司 | 面向对象编程语言和工具中的版本化支持 |
US20140087355A1 (en) * | 2012-09-24 | 2014-03-27 | GameMetrix Solutions, Inc. | Gaming platform for the development and execution of customized games and game components |
CN104470686A (zh) * | 2012-06-01 | 2015-03-25 | 奥尔德巴伦机器人公司 | 用于生成被实时地执行的移动机器人的上下文行为的系统和方法 |
CN105389619A (zh) * | 2014-08-31 | 2016-03-09 | 通用电气公司 | 用于改进健康护理生态系统内的连接的方法和系统 |
US20170054662A1 (en) * | 2015-08-21 | 2017-02-23 | Disney Enterprises, Inc. | Systems and methods for facilitating gameplay within messaging feeds |
US20170064034A1 (en) * | 2015-08-31 | 2017-03-02 | Ebay Inc. | Passive social media contact engagement |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549924B2 (en) * | 2003-05-09 | 2009-06-23 | Microsoft Corporation | Instant messaging embedded games |
US20080140528A1 (en) * | 2006-12-06 | 2008-06-12 | Ganz | System and method for tiered website access |
EP2063638A1 (fr) * | 2007-11-26 | 2009-05-27 | Nagravision S.A. | Méthode d'évaluation de droits d'utilisateurs stockés dans un module de sécurité |
EP2663055B1 (en) * | 2012-05-11 | 2019-08-28 | Samsung Electronics Co., Ltd | Network system with challenge mechanism and method of operation thereof |
US20160279523A1 (en) * | 2015-03-25 | 2016-09-29 | GAMEin30 Ltd. | System and method for interactive gaming |
US20180352278A1 (en) * | 2016-02-23 | 2018-12-06 | Sony Interactive Entertainment LLC | Personalized messaging management system for enhanced user engagement in a subscribed network |
CN105791324B (zh) * | 2016-05-12 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 帐号登录方法和装置 |
US10628294B2 (en) * | 2017-03-23 | 2020-04-21 | Electronic Arts Inc. | Mock services for software infrastructures |
US11330016B2 (en) * | 2018-12-28 | 2022-05-10 | Imperva, Inc. | Generating collection rules based on security rules |
US11153238B2 (en) | 2019-01-08 | 2021-10-19 | Snap Inc. | Dynamic application configuration |
-
2019
- 2019-05-09 US US16/408,036 patent/US11153238B2/en active Active
-
2020
- 2020-01-08 WO PCT/US2020/012735 patent/WO2020146496A1/en unknown
- 2020-01-08 CN CN202080008272.XA patent/CN113302586B/zh active Active
- 2020-01-08 EP EP20703862.1A patent/EP3908921A1/en active Pending
-
2021
- 2021-09-09 US US17/470,162 patent/US11606320B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652077A (zh) * | 2004-02-05 | 2005-08-10 | 微软公司 | 面向对象编程语言和工具中的版本化支持 |
CN104470686A (zh) * | 2012-06-01 | 2015-03-25 | 奥尔德巴伦机器人公司 | 用于生成被实时地执行的移动机器人的上下文行为的系统和方法 |
US20140087355A1 (en) * | 2012-09-24 | 2014-03-27 | GameMetrix Solutions, Inc. | Gaming platform for the development and execution of customized games and game components |
CN105389619A (zh) * | 2014-08-31 | 2016-03-09 | 通用电气公司 | 用于改进健康护理生态系统内的连接的方法和系统 |
US20170054662A1 (en) * | 2015-08-21 | 2017-02-23 | Disney Enterprises, Inc. | Systems and methods for facilitating gameplay within messaging feeds |
US20170064034A1 (en) * | 2015-08-31 | 2017-03-02 | Ebay Inc. | Passive social media contact engagement |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606320B2 (en) | 2019-01-08 | 2023-03-14 | Snap Inc. | Dynamic application configuration |
Also Published As
Publication number | Publication date |
---|---|
WO2020146496A1 (en) | 2020-07-16 |
CN113302586B (zh) | 2024-07-09 |
US20200220823A1 (en) | 2020-07-09 |
KR20210113280A (ko) | 2021-09-15 |
EP3908921A1 (en) | 2021-11-17 |
US11153238B2 (en) | 2021-10-19 |
US11606320B2 (en) | 2023-03-14 |
US20210409359A1 (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113302586B (zh) | 动态应用配置 | |
US11882162B2 (en) | Software application manager for messaging applications | |
CN114008597B (zh) | 在通信会话中生成动画覆盖 | |
CN113632497B (zh) | 生成具有增强图标的个性化地图界面 | |
KR102537852B1 (ko) | 제3자 애플리케이션 관리 | |
US11455082B2 (en) | Collaborative achievement interface | |
US11738277B2 (en) | Game testing system | |
CN112771526A (zh) | 协作型公共用户简档 | |
US11290404B2 (en) | Messaging and gaming applications communication platform | |
CN115769561A (zh) | 用于相机用户界面的第三方修改 | |
US11593826B1 (en) | Messaging and gaming applications rewards | |
KR102716120B1 (ko) | 동적 애플리케이션 구성 | |
Jensen et al. | 3 RD party application management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |