论文部分内容阅读
你可能不知道SNS为何物,但应该玩过Facebook、人人网或开心网吧,这几家当前正火的网站,正是SNS(Social NetworkSite,社交网站)的典型代表。沉迷于SNS网站,大都是因为里面千奇百怪的应用,如偷菜、砸蛋、开餐厅等等。这些应用实际就是SNS插件,不少是第三方厂商开发的,由此也带来了巨大的经济利益。
人物专访
今天我们请来的,是人人网上人气非常旺的“怪蛋工场”的作者之一,网名“邂逅”,他将和我们聊聊SNS网站应用开发的相关话题。邂逅于2007年来到北京,当时尚未毕业,学校联系了北京方面的培训机构,然后就和同学一起踏上了北漂之路,到如今已是事业有成。
CFan:为什么会选择SNS平台开发?
邂逅:大约在2008年校内网开放应用程序接口,掀起国内SNS热潮,开心农场的火爆也证明了这种商业模式的可行。于是我们公司也开始转型SNS Flash游戏,并取得了成功。现在我们正尝试着把Socket技术融合在SNS游戏中,打破常规SNS游戏时间上不实时定律,在SNS上也能和好友实时互动玩游戏。
CFan:对于即将毕业的同学们有何忠告?
邂逅:曾经有一位公司老总对我说:“知道我为什么喜欢招刚毕业的大学生吗?因为你们就像一张白纸,可塑性很强。” 我的理解就是:不怕不会,就怕不学!
像我们这类型的工作,技术上遇到难题并不算什么,百度、谷歌及各大技术论坛,可以找到想知道的一切。当然最快的途径是向身边的同事,那些久经沙场的老将学习。所以真正的问题,是我们的心理素质和对问题的处理能力、分析能力,这个谁也帮不了你。
【芝麻开门】
做SNS开发之前需要掌握哪些知识?首先要掌握前端和后端两种开发语言。前端用主要是掌握Javascript和HTML、Flash知识。就目前的主流开发来说,前端主要掌握Flash AS3语言,它的优点是可以把游戏表现得更加完美。
后端基本都是用PHP语言开发,PHP非常简洁,开发快,维护起来容易上手。数据库一般都是用MySQL,需要经常用到的游戏数据就可以用Memcache缓存(例如好友列表),这样可以很大程度上提高游戏的效率。还有服务器方面用Centos系统就可以,配上Nginx解析PHP效率也是比较快的。
【任务实战】
如图3所示,是进入人人网“怪蛋工场”应用后的初始界面。这个游戏的故事背景是:
在太阳系金、木、水、火、土五大行星里生活着很多精灵,它们为了争夺资源互相敌视,而传说中只有当所有星系的精灵团结一致时才会有新的希望。于是,五大行星族长提议举行怪兽争霸来提高行星间的合作与交流,争霸赛马上就要开始了,各星系都选出他们的代表精灵来参加 ......
限于篇幅我们无法详细介绍整个项目,这里简单聊聊PHP和Flash在本地是如何正常运行起来的。PHP需要为Flash提供本地接口,在各个平台上做初期调试。这就需要在Flash文件里有一个配置文件,最好是从外部调用的XML文件,里边主要是Flash文件的一些加载配置和调用接口的地址,方便以后正式环境切换。这样,若本地PHP接口对Flash传来的参数经过校验是正确的,就能直接返回与正式环境一样的数据,当参数错误时,便会返回错误信息,就不需要执行其他操作了。
实战:从SNS网站获取用户数据
上边是对基本开发语言以及服务器配置的一些要求,还有一点很重要的,是对各个平台的接口要非常清楚,要了解具体接口的作用,方便以后从接口取数据。下面的实例,即是从校内网站获取用户基本数据。首先建立一个类:
class XNapp {
public $secret;//app分配的密钥
public $session_key;//app返回的加密校对key
public $api_key;//app分配的key
public $v;//版本号
public $server_addr;//请求地址
public $method; //发送请求方法
//构造函数,自动执行
public function __construct($api_key,$secret,$v='1.0')
{
$this->secret = $secret;
$this->api_key= $api_key;
$this->v=$v;
$this->session_key=$_REQUEST['xn_sig_session_key'];
$this->server_addr='http://api.xiaonei.com/restserver.do?';
}
public function auth($method)
{ //函数代码略 ...}
public function users($method,$array=array(),$format='JSON')
{ //函数代码略 ...}
}
上面的users()函数,主要是为取得对应用户个人数据,采用的是JSON方式。PHP和Flash之间的数据传输可以用JSON和AMF两种方式,前者开发起来相对容易,尤其是调试的时候非常明显。后者的优点是传送的数据不是明文,相对来说更为安全,传送速度也快,只是调试很麻烦。创建类之后,可通过下面的方法调用:
$xn = new XNapp($api_key,$secret); //实例化开始使用
//获得个人信息
$params = array (
"uids" => array($xiaonei_uid),
"fields"=> array('name','sex','birthday','tinyurl','headurl','mainurl')
);
$result_array = $xn->users('getInfo',$params);//app返回用户信息
每个平台都有自己的接口,只要按照SNS平台事先规范的接口调用即可,其实主要用的也就是调用玩家SNS的个人基本信息和好友的信息,用于游戏互动。其他还是自己网站的数据。
对于新手来说,搭建PHP开发环境是件比较头痛的事情,往往不知道哪里配置错误,就会导致PHP程序不被解析,数据扩展安装失败等种种问题。其实对初学者来说,搭建一个本地环境,在Windows环境下,找一个Apache+MySQL+PHP套装安装就完全可以了。比如PHPnow(下载地址:http://phpnow.org/download.php)。
下载解压后,双击Setup.cmd安装,按提示选择推荐的Apache 2.0(输入20后按回车键),接着再按提示选择MySQL 5.0(输入50后按回车键),安装完毕询问是否初始化,按y键后回车,初始化过程中,遇到系统防火墙提示时,选择“解除阻止”即可,最后按提示设置数据库root用户密码,完成后即会自动打开PHP测试页,即表示安装成功(见图4)。现在就可以在本机无障碍体验PHP程序开发和调试了。
这个插件开发的系列,到本期就暂告一段落了。这一系列中,我们接触了Office、网络、应用软件等多种类型的插件开发,虽然各有不同,但也不乏共同点:比如开发工具有许多就是相同的,开发的方法也能举一反三互相借鉴。最后小编想说的是:瞄准插件开发市场,首先要调查宿主软件的市场大不大,如果是一个非常偏门的应用软件,它的插件市场一般也会有限;另外,在确定要为某软件开发插件后,一定要想方设法多搜集一些此软件的相关资料,包括软件本身的使用、软件开放API的详细资料等。
人物专访
今天我们请来的,是人人网上人气非常旺的“怪蛋工场”的作者之一,网名“邂逅”,他将和我们聊聊SNS网站应用开发的相关话题。邂逅于2007年来到北京,当时尚未毕业,学校联系了北京方面的培训机构,然后就和同学一起踏上了北漂之路,到如今已是事业有成。
CFan:为什么会选择SNS平台开发?
邂逅:大约在2008年校内网开放应用程序接口,掀起国内SNS热潮,开心农场的火爆也证明了这种商业模式的可行。于是我们公司也开始转型SNS Flash游戏,并取得了成功。现在我们正尝试着把Socket技术融合在SNS游戏中,打破常规SNS游戏时间上不实时定律,在SNS上也能和好友实时互动玩游戏。
CFan:对于即将毕业的同学们有何忠告?
邂逅:曾经有一位公司老总对我说:“知道我为什么喜欢招刚毕业的大学生吗?因为你们就像一张白纸,可塑性很强。” 我的理解就是:不怕不会,就怕不学!
像我们这类型的工作,技术上遇到难题并不算什么,百度、谷歌及各大技术论坛,可以找到想知道的一切。当然最快的途径是向身边的同事,那些久经沙场的老将学习。所以真正的问题,是我们的心理素质和对问题的处理能力、分析能力,这个谁也帮不了你。
【芝麻开门】
做SNS开发之前需要掌握哪些知识?首先要掌握前端和后端两种开发语言。前端用主要是掌握Javascript和HTML、Flash知识。就目前的主流开发来说,前端主要掌握Flash AS3语言,它的优点是可以把游戏表现得更加完美。
后端基本都是用PHP语言开发,PHP非常简洁,开发快,维护起来容易上手。数据库一般都是用MySQL,需要经常用到的游戏数据就可以用Memcache缓存(例如好友列表),这样可以很大程度上提高游戏的效率。还有服务器方面用Centos系统就可以,配上Nginx解析PHP效率也是比较快的。
【任务实战】
如图3所示,是进入人人网“怪蛋工场”应用后的初始界面。这个游戏的故事背景是:
在太阳系金、木、水、火、土五大行星里生活着很多精灵,它们为了争夺资源互相敌视,而传说中只有当所有星系的精灵团结一致时才会有新的希望。于是,五大行星族长提议举行怪兽争霸来提高行星间的合作与交流,争霸赛马上就要开始了,各星系都选出他们的代表精灵来参加 ......
限于篇幅我们无法详细介绍整个项目,这里简单聊聊PHP和Flash在本地是如何正常运行起来的。PHP需要为Flash提供本地接口,在各个平台上做初期调试。这就需要在Flash文件里有一个配置文件,最好是从外部调用的XML文件,里边主要是Flash文件的一些加载配置和调用接口的地址,方便以后正式环境切换。这样,若本地PHP接口对Flash传来的参数经过校验是正确的,就能直接返回与正式环境一样的数据,当参数错误时,便会返回错误信息,就不需要执行其他操作了。
实战:从SNS网站获取用户数据
上边是对基本开发语言以及服务器配置的一些要求,还有一点很重要的,是对各个平台的接口要非常清楚,要了解具体接口的作用,方便以后从接口取数据。下面的实例,即是从校内网站获取用户基本数据。首先建立一个类:
class XNapp {
public $secret;//app分配的密钥
public $session_key;//app返回的加密校对key
public $api_key;//app分配的key
public $v;//版本号
public $server_addr;//请求地址
public $method; //发送请求方法
//构造函数,自动执行
public function __construct($api_key,$secret,$v='1.0')
{
$this->secret = $secret;
$this->api_key= $api_key;
$this->v=$v;
$this->session_key=$_REQUEST['xn_sig_session_key'];
$this->server_addr='http://api.xiaonei.com/restserver.do?';
}
public function auth($method)
{ //函数代码略 ...}
public function users($method,$array=array(),$format='JSON')
{ //函数代码略 ...}
}
上面的users()函数,主要是为取得对应用户个人数据,采用的是JSON方式。PHP和Flash之间的数据传输可以用JSON和AMF两种方式,前者开发起来相对容易,尤其是调试的时候非常明显。后者的优点是传送的数据不是明文,相对来说更为安全,传送速度也快,只是调试很麻烦。创建类之后,可通过下面的方法调用:
$xn = new XNapp($api_key,$secret); //实例化开始使用
//获得个人信息
$params = array (
"uids" => array($xiaonei_uid),
"fields"=> array('name','sex','birthday','tinyurl','headurl','mainurl')
);
$result_array = $xn->users('getInfo',$params);//app返回用户信息
每个平台都有自己的接口,只要按照SNS平台事先规范的接口调用即可,其实主要用的也就是调用玩家SNS的个人基本信息和好友的信息,用于游戏互动。其他还是自己网站的数据。
对于新手来说,搭建PHP开发环境是件比较头痛的事情,往往不知道哪里配置错误,就会导致PHP程序不被解析,数据扩展安装失败等种种问题。其实对初学者来说,搭建一个本地环境,在Windows环境下,找一个Apache+MySQL+PHP套装安装就完全可以了。比如PHPnow(下载地址:http://phpnow.org/download.php)。
下载解压后,双击Setup.cmd安装,按提示选择推荐的Apache 2.0(输入20后按回车键),接着再按提示选择MySQL 5.0(输入50后按回车键),安装完毕询问是否初始化,按y键后回车,初始化过程中,遇到系统防火墙提示时,选择“解除阻止”即可,最后按提示设置数据库root用户密码,完成后即会自动打开PHP测试页,即表示安装成功(见图4)。现在就可以在本机无障碍体验PHP程序开发和调试了。
这个插件开发的系列,到本期就暂告一段落了。这一系列中,我们接触了Office、网络、应用软件等多种类型的插件开发,虽然各有不同,但也不乏共同点:比如开发工具有许多就是相同的,开发的方法也能举一反三互相借鉴。最后小编想说的是:瞄准插件开发市场,首先要调查宿主软件的市场大不大,如果是一个非常偏门的应用软件,它的插件市场一般也会有限;另外,在确定要为某软件开发插件后,一定要想方设法多搜集一些此软件的相关资料,包括软件本身的使用、软件开放API的详细资料等。