提供游戏信息
在应用面板的小游戏部分,可上传所有游戏素材及提供游戏信息。请注意,如果未提供所有必要素材,游戏将无法通过审核。此外,如果缺少素材,游戏可能无法正确显示,因此,我们建议在测试游戏前上传所有素材。

应用视频
您应提供展示游戏玩法的简短视频,最好可循环播放。建议长宽比为 16:9 或 1:1。即使您的游戏为纵向模式,也请考虑根据这些长宽比优化视频,因为动态消息是以横向模式呈现。在这些情况下,请考虑裁剪游戏视频,横向填充长方形的屏幕区域;或添加其他信息,填充视频两侧。
请记住,视频需要展示游戏玩法,而不应看起来像一个广告。
启动图像
在游戏加载过程中,向玩家显示此图像。图像分辨率应为 750 x 1334。
应用图标
在每个游戏会话前后,游戏顶部的原生对话框中会显示图标。请务必提供这两个游戏图标,否则会使用默认应用程序图标显示游戏。
封面图片和横幅通知
与上述素材类似,封面图片和横幅通知是 Facebook 开放平台正确显示原生对话框、动态消息帖子和 Messenger 附件所需的艺术设计作品。
游戏信息
我们需要以下游戏信息:
简短描述:让玩家了解游戏主题的短句
详细描述:使用多行文本详细介绍游戏特点
发行商:游戏发行公司的名称
标语:吸引新玩家玩游戏的短句。不要使用一系列以逗号分隔的关键字。

设置智能助手
小游戏的一项重要功能是能附加 Messenger 平台智能助手。这项功能虽为选择性配置,却为游戏提供了一个强有力的再参与渠道。以下指南说明了如何创建和设置游戏智能助手。
第 1 步:创建主页
如需创建游戏智能助手,您首先需要创建 Facebook 主页。主页要正确地与小游戏关联,需要具备一些特殊的属性:
主页类别需要是应用主页
主页名称需要包含应用名称。
主页不能与其他应用关联。
您可以前往“应用面板”,在小游戏产品的应用主页版块创建满足这些特殊条件的主页。 在执行下一步操作前,请确保应用主页版块如右图所示:

注意:如果小游戏未与上述类型的主页正确关联,智能助手将不会收到 messaging_game_plays 事件
第 2 步:激活智能助手
创建主页后,您需要确保响应其消息 webhooks。Webhooks 是在向您的主页发送消息事件时,我们向您的后端发送的 HTTP 调用。之后,您的服务器的逻辑将决定如何正确地响应每个事件(如果响应适用)。 如需将服务器的端点与主页事件相关联,请按照 Messenger 平台快速入门教程中的说明为主页启用智能助手。下表介绍了将智能助手与小游戏关联所需的 webhooks 和权限:
部分 值
主页事件 messages 和 messaging_game_plays
权限 pages_messaging
小游戏智能助手仅可使用标准消息和 GAME_EVENT消息标签,不能使用 pages_messaging_subscriptions。
如果您的智能助手具有需要用到订阅消息或客户匹配的其他功能,您应创建单独的应用并重新申请 Messenger 平台权限。
第 3 步:响应 messaging_game_plays webhooks
正确配置智能助手后,您的服务器端应用程序将开始在玩家每次关闭小游戏时接收 messaging_game_playswebhooks。下面是服务器端应用程序检测到并响应一个 webhook 的示例。
if (event.game_play) {
var senderId = event.sender.id; // Messenger sender id
var playerId = event.game_play.player_id; // Instant Games player id
var contextId = event.game_play.context_id;
var payload = event.game_play.payload;
var playerWon = payload[‘playerWon’];
if (playerWon) {
sendMessage(
senderId,
contextId,
‘Congratulations on your victory!’,
‘Play Again’
);

} else {
sendMessage(
senderId,
contextId,
‘Better luck next time!’,
‘Rematch!’
);
}
}
您可以参阅 Messenger 平台文档,详细了解 webhook:“玩游戏”Webhook 文档。
第 4 步:吸引玩家重回游戏
以下是如何使用图谱 API 向玩家发送 game_play 按钮的示例。
curl “https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>”
-X POST
-H “Content-Type: application/json”
-d ‘{
“messaging_type”: “UPDATE”,
“recipient”: {
“id”: “<RECIPIENT_ID>”
},
“message”: {
“attachment”: {
“type”: “template”,
“payload”: {
“template_type”: “generic”,
“elements”: [
{
“title”: “It has been a while since your last game. Time to get back”,
“buttons”: [
{
“type”: “game_play”,
“title”: “Play Tic-Tac-Toe.”,
“payload”: “{}”,
“game_metadata”: {
“context_id”: “<CONTEXT_ID>”
}
}
]
}
]
}
}
}
}’

您可以参阅 Messenger 平台文档,详细了解此按钮:“玩游戏”按钮文档。
第 5 步:遵循我们的指南和政策
发布至生产阶段后,您的游戏智能助手应进入 Messenger 平台提交流程。提交智能助手之前,请确保遵守下面的最佳实践:
建议:
向玩家提供相关、及时且有价值的更新。如需获取更多信息,请访问我们的最佳实践版块。
给予用户掌控权(例如:让用户确认他们是否想要接收通知以及以接收的频率)。
对玩游戏按钮使用入口点数据,以环境相关的方式加载游戏。
为智能助手设置与游戏相同的名称。
利用社交更新,如回合提醒、比赛结果、限时奖励和挑战。
确保为玩家提供适当的奖励刺激,促使他们通过智能助手消息打开游戏。为此,您可使用消息负载为玩家提供有价值的游戏内奖励。一般来说,如果智能助手消息打开的是游戏的开始页面,这条消息便没有什么价值。
使用固定菜单提供常见操作,如启动游戏。
设置默认操作,在自定义更新中使用 game_play,以便整个图片都能将用户带入游戏中。
通过智能助手公布新功能或内容。
针对每位用户优化每天的消息发送时段,考虑用户所在的时区。
借鉴 Messenger 智能助手的通用最佳实践。
请勿:

在玩家关闭游戏后立即发送消息。

发送没有任何背景信息的消息再次吸引玩家(例如:“立即回到游戏中!”)。建议首选包含丰富背景信息的消息来重新吸引玩家(例如:“你的侦查员为你带回了更多信息”)

使用其他 Facebook 用户的口吻,或误导玩家以为他们好友在与他们沟通。

在用户屡次不想加入游戏的情况下继续向他们发送智能助手消息。这种情况将适用政策限制,并阻止您发送消息。当前的限制为,自最后一次游戏会话结束后 10 天最多可发送 5 条消息。如需详细了解,请参阅我们的开放平台政策文档中的第 9.4 条

链接至任何应用商店。

测试、发布和分享小游戏
通过小游戏,用户能够十分轻松地在本地测试开发版本、自动化发布流程,以及与团队分享构建版本。本文档会详细说明以下步骤:
通过本地服务器测试游戏
上传构建版本
测试发布的构建版本
提交游戏以供应用审核
通过本地服务器测试游戏
小游戏体验的很大一部分来自原生装饰,这些原生装饰在每个游戏会话前后添加到游戏中。为了方便开发以及测试,我们让开发者能够通过本地服务器运行游戏,提供与玩家在 Facebook 平台中类似的体验。此功能通过嵌入式测试引擎实现,只需少量配置。
通过 localhost 启用 SSL
嵌入式测试引擎在 facebook.com 域下运行,因此,仅能通过 https 提供服务。为了在通过 https 提供的页面中嵌入内容,还需要通过 SSL 提供嵌入式内容。以下步骤将说明如何设置提供安全内容的 localhost 服务器。可通过多种方法设置,下文仅介绍其中一种。
1.通过 npm 安装 http-server 包。 如果未安装 npm,请遵循 Node.JS 网站中的安装说明。然后,运行以下命令:

$ npm install -g http-server
2.通过 openssl 创建私钥和证书。 这是运行安全本地服务器所必需的。
$ cd path/to/my/game/
$ openssl genrsa 2048 > key.pem
$ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem

Fill out necessary information

3.使用 SSL 通过 localhost 运行游戏。 私钥和证书准备就绪后,可使用 SSL 通过 localhost 提供服务。

Starts to serve via HTTPS, with cache disabled

$ http-server --ssl -c-1 -p 8080 -a 127.0.0.1
Starting up http-server, serving ./ through https
Available on:
https://127.0.0.1:8080
Hit CTRL-C to stop the server
4.之后,将浏览器指向 https://localhost:8080,即可显示游戏正在运行。 您可能需要确认浏览器显示的安全警告,然后才能继续操作。
从浏览器运行嵌入式引擎
现在,通过安全连接从 localhost 提供游戏,可将游戏嵌入我们的引擎中。将浏览器指向此处:
https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080
您应看到游戏在小游戏引擎中运行,如下所示:

此时,您应能够通过在本地服务器上运行的游戏,使用小游戏 SDK 的所有功能。
出于安全原因,localhost 是唯一支持使用嵌入式测试引擎执行测试的域。
在特定对话中通过本地服务器运行游戏
您可以在特定环境中通过本地服务器运行游戏。如上所述,使用嵌入式引擎即可实现。您可随后利用 FBInstant.context 方法(例如 switchAsync()、createAsync() 和 chooseAsync())切换到其他环境。
这使您可以有效地在对话环境中通过 localhost 运行游戏以及测试是否正确发送您的环境更新。
上传构建版本
将游戏打包为一个 .zip 文件
小游戏内容在 Facebook 基础设施上托管,因此,无需自行托管游戏内容或使用第三方服务。在准备好游戏进行测试后,将所有游戏文件打包为一个 .zip 文件。请注意,index.html 文件应位于此存档的根文件夹中,而不应位于任何子文件夹中。可通过两种方法上传捆绑包:
1.通过开发者网站上传 .zip 文件
要上传 .zip 文件,请点击应用面板中的虚拟主机选项卡。从该选项卡的下拉菜单中选择“小游戏”,然后单击上传版本,即可将 .zip 文件上传到 Facebook 的托管服务中。
之后,构建版本会处理文件,仅需数秒时间。状态更改为“待命”时,单击“★”按钮将构建版本推送到生产。

2.通过图谱 API 上传存档
您也可以通过图谱 API 调用上传捆绑包。如果有自动化部署系统,这很有用。要执行此操作,需要通过虚拟主机版块请求一个上传口令,方法是单击顶部的生成素材上传访问口令按钮。
借助对话框中的口令,可向图谱 API 提交以下调用以提交 .zip 文件。请注意,我们特意使用视频子域,因为该网址配置为接收大型上传文件。
curl -X POST https://graph-video.facebook.com/{App ID}/assets
-F ‘access_token={ASSET UPLOAD ACCESS TOKEN}’
-F ‘type=BUNDLE’
-F ‘asset=@./{YOUR GAME}.zip’
-F ‘comment=Graph API upload’
之后,游戏会在已上传捆绑包列表中正常显示。 可通过此调用与现有构建系统集成。
托管限制
请记住,Facebook 托管存在多项限制,其中最重要的是:
不支持服务器端逻辑(例如:php)。
上传文件的总大小不超过 200MB。
每次应用程序上传的文件数量不超过 500 个。
详情请参阅虚拟主机参考文档。
测试发布的构建版本
拥有处于“生产”阶段的构建版本后,您需要测试该构建版本,而不是测试在当前服务器中运行的构建版本。您可通过以下两种方式中的任意一种完成测试。
1.在 Facebook 中运行游戏
要在动态消息中分享游戏,单击分享你的游戏部分的分享按钮。此操作可让您在动态消息中分享游戏,通过任何平台执行测试(桌面、iOS 或 Android)。

2.在 Messenger 中运行游戏
在 Messenger 的小游戏列表中,您和您的团队(在应用中分配了“管理员”、“开发者”或“测试者”身份的用户)应能够看到处于开发阶段的所有游戏的列表。此列表的标题为开发中。这可帮助您在 Messenger 中测试游戏,即使游戏尚未发布。

3.分享游戏链接
如果已将主页与游戏关联,那么您也可以生成可分享的链接。如果您设置了智能助手,用户点击此链接后,会在 Messenger 中打开与智能助手的对话,并自动打开游戏。如果未设置智能助手,用户点击链接后将前往您的 Facebook 主页,并自动从主页打开游戏。无论是那种方式,点击链接的任何用户都能以适当的方式开始玩游戏。

提交游戏以供应用审核
对发布版本感到满意后,您需要在“应用审核”版块提交游戏供审核,以便我们的团队能评估其质量及是否遵守我们的开放平台政策。
请务必在提交游戏前查看我们的发布检查表,确保游戏符合规定的所有条件。该指南还包含在游戏通过审核后发布游戏的方法说明。

加载时间与性能
初始加载时间不应超过 5 秒: 小游戏必须能够“即时”加载,如果初始加载时间太长,玩家将趋向于流失。捆绑包的总大小最多可为 200 MB,但在初始加载期间,我们仅加载您的 index.html 明确要求的文件。因此,请确保在初始加载期间仅加载关键素材,用于开启首次会话,并延迟其他素材的加载,等需要时再加载。
报告初始加载进度:在初始加载期间,您应该使用 setProgress 向我们通知加载进度。
避免次级加载页面: 原生加载进度环显示 100% 完成时,玩家不应进入另一个等待环节,而是应该能够立即开始玩游戏。
针对移动端优化: 尽管小游戏是在桌面浏览器中运行,但大部分会话来源于移动设备。建议针对常用的 iOS 和 Android 设备优化显示效果和宽高比。
使用 initializeAsync 并行加载资源: 下载资源之前,您不应等待 initializeAsync promise 的解析。建议并行下载资源。
新手玩家体验
如果您的游戏玩法不容易理解,可以针对新手玩家添加不会干扰游戏体验的简短教程。
允许熟手玩家根据需要选择重新查看教程。这可能是因为熟手玩家有一段时间没有玩游戏了,或想要向好友展示教程。请注意,不要在每一次会话中强行展示教程,而是允许熟手玩家跳过教程直接开始玩游戏。
考虑使用小组设置,为晚些时候加入小组的新手玩家提供教程。您应该确保这些玩家在首次玩游戏时能够看到教程。
尽可能使用玩法演示教程,而非文字教程。最好的教程应不着痕迹地为用户提供说明和演示。

游戏内玩家体验
集成 onPause 回调,确保处理中断情况。这样,您的游戏便可以妥善处理玩家受到干扰的情况(收到通知、来电、应用切换等干扰)
确保大厅中的所有列表项目均包含行动号召:如果您开发的是回合制异步游戏,则建议集成大厅页面,玩家可以在这里轻松前往所有正在进行和推荐的游戏比拼。对于此大厅页面,可以考虑使用包含相应行动号召的下列版块。
版块名称 用户筛选条件 推荐的行动号召 行动号召操作
推荐比赛 在其他会话中活跃,但目前未与当前玩家进行任何比赛的关联玩家 “开始新比赛” 调用 createAsync(),在新的环境中开始新比赛
你的回合 其他玩家正在等待当前玩家完成回合的比赛 “轮到你了” 调用 switchAsync(),在该环境中玩游戏

对手的回合 当前玩家正在等待其他玩家完成回合的比赛 “催促一下” 调用 switchAsync(),然后调用 updateAsync() 并发送催促消息

结束的比赛 已经结束的往期比赛 “再次比拼” 调用 switchAsync(),在该环境中开始新比赛
针对等待自己的回合或完成当天所有挑战的玩家启用单人模式。
针对环境类型定制游戏体验:由于小游戏可以在多个不同类型的环境(一对一对话、群聊、动态消息帖子等)中运行,请确保您的游戏始终能读取 FBInstant.context.getType() 并加载适合该环境类型的体验。
游戏本地化:如果游戏使用玩家的常用语言,他们更可能与游戏进行更多互动。下面的表格可帮助您确定将游戏内容翻译为哪种语言:
语言 玩家百分比
EN、ES、VI、PT、TH、FR、PL、TW 90% 的小游戏玩家
在上述语言的基础上新增: TR、ID、IT、HU、DE、AR、GR、DA、CZ、NL、NO、SE、RU、SK、ZH、HR、JP 99% 的小游戏玩家
游戏社交体验
鼓励小组游戏:如果玩家能够在大规模小组(3 人或以上)中互动,则他们的留存率趋于更高,因此即便您的游戏设计为 1 对 1 模式,也应确保玩家在较大规模的小组中玩游戏时,能获得优质的游戏内体验。您可以通过设计小组内排行榜等竞争性功能或组队打怪等协作性功能,来鼓励小组游戏。

分享和邀请消息应该具有意义:如果玩家收到的消息包含有意义的社交元素,他们可能会对邀请作出更积极的反应。例如,推荐使用“你的好友卡在这一关了,快来帮帮 TA 吧!”这类可直接打开游戏相应关卡的消息,而非使用“好友邀你一起玩这个游戏”之类的通用消息。
自定义更新应具有相关性和背景信息。例如,相较于仅展示玩家新分数的自定义更新而言,在排行榜中展示这位玩家超越了其他玩家,这类自定义更新要更胜一筹。

在自定义更新中使用数据负载,提供前后相关的体验。例如,如果自定义更新消息为“好友邀你帮 TA 打怪”,则该消息的行动号召应将被邀请玩家直接引导至对应的打怪战斗中,而不是引导至游戏的初始页面。

再次吸引玩家的体验
游戏智能助手应为玩家提供及时、相关且有价值的消息:
及时:在游戏客户端构建选项页面,为玩家提供控制选项,让他们能够接收或屏蔽智能助手消息,还能控制一天中接收消息的时间。
相关:智能助手消息应包含一些游戏内容或社交元素。建议首选“你已经完成探险啦,快回来领取你的奖励吧!”之类的消息,而非使用“你有一段时间没有玩游戏啦,快回来吧!”之类的消息。
有价值:确保为玩家提供适当的奖励刺激,促使他们通过智能助手消息打开游戏。为此,您可使用消息负载为玩家提供有价值的游戏内奖励。一般来说,如果智能助手消息打开的是游戏的开始页面,这条消息便没有什么价值。

关于游戏智能助手的更多最佳实践
建议:
向玩家提供相关、及时且有价值的更新。如需获取更多信息,请访问我们的最佳实践版块。
给予用户掌控权(例如:让用户确认他们是否想要接收通知以及以接收的频率)。
对玩游戏按钮使用入口点数据,以环境相关的方式加载游戏。
为智能助手设置与游戏相同的名称。
利用社交更新,如回合提醒、比赛结果、限时奖励和挑战。
确保为玩家提供适当的奖励刺激,促使他们通过智能助手消息打开游戏。为此,您可使用消息负载为玩家提供有价值的游戏内奖励。一般来说,如果智能助手消息打开的是游戏的开始页面,这条消息便没有什么价值。
使用固定菜单提供常见操作,如启动游戏。
设置默认操作,在自定义更新中使用 game_play,以便整个图片都能将用户带入游戏中。
通过智能助手公布新功能或内容。
针对每位用户优化每天的消息发送时段,考虑用户所在的时区。
借鉴 Messenger 智能助手的通用最佳实践。
请勿:

在玩家关闭游戏后立即发送消息。

发送没有任何背景信息的消息再次吸引玩家(例如:“立即回到游戏中!”)。建议首选包含丰富背景信息的消息来重新吸引玩家(例如:“你的侦查员为你带回了更多信息”)

使用其他 Facebook 用户的口吻,或误导玩家以为他们好友在与他们沟通。

在用户屡次不想加入游戏的情况下继续向他们发送智能助手消息。这种情况将适用政策限制,并阻止您发送消息。当前的限制为,自最后一次游戏会话结束后 10 天最多可发送 5 条消息。如需详细了解,请参阅我们的开放平台政策文档中的第 9.4 条

链接至任何应用商店。


游戏应该:
与原生游戏的外观效果一样,即不应该像网页一样滚动、缩放或移动
在“应用审核”选项卡中将可见性设置为公开
在设置选项卡下为游戏指定命名空间。
按照游戏设置版块的详细说明上传所有素材
初始下载包的大小不超过 3MB(对于轻量级游戏而言,不超过 1MB)
通过 FBInstant.setLoadingProgress 提供实际的加载进程
响应移动设备的静音开关。对此,我们建议使用 WebAudio API。
使用 SDK 4.0 或更高版本,并通过模板发送所有自定义更新
确保订阅 FBInstant.onPause,以妥善处理中断情况,如在游戏过程中接电话或收到通知。
遵守所有已发布的 Facebook 开发者政策
游戏不应该:

与其他任何已上线的应用(如 Facebook 网页游戏)共用同一个应用编号。

链接至外部的其他任何网站或应用。唯一的例外情况是链接至隐私权政策页面。

在应用名称中添加品牌信息。例如,您的游戏不能取名为“Instant Gems”,也不能取名为“Gems for Messenger”,因为“Instant”和“Messenger”都是 Facebook 保留的关键字。

针对每个环境的每个会话发送多个更新。

请求小游戏 SDK 未提供的任何用户信息(包括使用 Facebook 开放平台 Javascript SDK)

展示第三方广告

集成支付方式

内嵌小游戏 SDK,或未使用 connect.facebook.com 提供的版本

在 startGameAsync 被解析之前调用除下列以外的方法:
FBInstant.getSDKVersion()
FBInstant.initializeAsync()
FBInstant.getPlatform()
FBInstant.setLoadingProgress()
FBInstant.getSupportedAPIs()
FBInstant.quit()
FBInstant.onPause()
FBInstant.player.getID()

Facebook 上传小游戏流程相关推荐

  1. 还在用开发者工具上传小程序? 快来试试 miniprogram-ci 提效摸鱼

    1. 前言 大家好,我是若川.持续组织了近一年的源码共读活动,感兴趣的可以 加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整 ...

  2. spring mvc文件上传小例子

    spring mvc文件上传小例子 1.jsp页面 <%@page contentType="text/html;charset=UTF-8"%> <%@page ...

  3. 抽了几天用Flex写了个上传小工具,支持批量上传,支持配置

    2019独角兽企业重金招聘Python工程师标准>>> 抽了几天用Flex写了个上传小插件,支持批量上传,想实现MD5校验的但没想到好的方法 欢迎大家提意见 源码地址 http:// ...

  4. 湖北一考生将高考数学题上传小猿搜题事件网络舆情综合编报

    媒体报道 近日,据媒体报道,2021年6月7日,高考第一天,有网友爆料称,在下午的数学考场上有考生疑似将2021年全国新高考一卷数学卷拍照上传至小猿搜题App上,被小猿搜题App工作人员发现后截图举报 ...

  5. 如何用微信web开发者工具测试调试并打包上传小程序

    厦门四六开科技给大家讲讲 如何用微信web开发者工具测试调试并打包上传小程序,其实还是很简单的,这个教程针对小白,大神请直接略过. 一.下载并安装软件(根据自己电脑实际情况选择版本安装) 如何用微信开 ...

  6. 分布式文件系统研究-fastDSF文件上传和下载流程

    文件上传流程 客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名. 组名:文件上传后所在的storag ...

  7. PlayFrameWork实现文件上传,完整流程

    1.页面内容 <!DOCTYPE html> <html><head><title>index.html</title><meta n ...

  8. git上传项目全部流程

    一.下载git 进入网址:https://git-scm.com/downloads: 点击中的Download 2.16.0 for Windows; 在中选择蓝色字段点击,根据电脑64或32位选择 ...

  9. 风口上的小游戏还有怎样的发展空间?7位腾讯技术专家为你解答

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 8月25日腾讯云Game-Tech技术沙龙在北京举办,腾讯云资深专家与知名游戏引擎Layabox的大咖为 ...

  10. laravel-admin多图上传小技巧

    昨天在开发一个功能的时候,因为需要用到多图上传,所以也是查看文档,但是文档基本没谈到,最后还是在谷歌上找到,今天向大家分享有关使用小技巧. 我们在表单中这样引用多图上传,代码如下: $form-> ...

最新文章

  1. 智慧医疗解决医生“带病工作、超负荷工作”
  2. 使用简单的轻量级移动web应用开发框架 - Sidetap
  3. 验证python安装_Python环境搭建(安装、验证与卸载)
  4. laravel 5.1 添加第三方扩展库
  5. [翻译:ASP.NET MVC 教程]理解模型、视图和控制器
  6. mysql树状查询优化_解析SQL中树形分层数据的查询优化
  7. mysql上一条语句成功_mysql : 获取上一条insert语句
  8. Maven仓库的理解及配置
  9. 恢复win7开机动画
  10. 寻找可接入正版音乐曲库的音乐API?来了解HIFIVE音乐开放平台!
  11. 去除从网页上复制到WORD文档中的下箭头方法
  12. 抖音:运营与商业模式分析
  13. 人均劳动生产率的计算方法_劳动生产率计算公式
  14. 基于数据kmeans_data分析聚类画图 使用sc轮廓系数作为评价指标
  15. 五种提前还款方式那种更划算
  16. HorizontalScrollview+recycleview实现横向滑动
  17. 杀疯了!本科大神毕设:3D虚拟主播软件!独创AR直播!支持OBS!开源!
  18. 十大面试问题解惑,秒杀一切HR、技术面试
  19. Unity 3D | 报错:UnassignedReferenceException: The variable “***” of “***” has not been assigned.
  20. EasyUI tree实现双击展开/折叠

热门文章

  1. 「BZOJ1597」[Usaco2008 Mar] [TYWZOJ1482] 土地购买
  2. 经纬度坐标二维数组检验正则表达式
  3. Python中CRAPS游戏,即花旗骰
  4. 浅谈机器学习中的非线性
  5. 1、mysql创建事件
  6. IT 工程师长期保住饭碗的一些建议
  7. sz方法从服务器下载超过4g文件方法
  8. U3D特效笔记——沼泽技能
  9. 汽车Bootloader原理
  10. 迷你双核RK3066 安卓4.1智能网络高清TV 安卓播放器MK802III-淘宝网