08APRIL |
|---|
最近上vpn比较多,我自己的网站竟然常常封闭我自己的IP,提示我必须输入验证码才能访问,过分的是,输入只能看一页,第二页还得再输入一遍,这个cloudflare做的也太过分了。于是登录cloudflare后台一探究竟。
首先,最近vpn的流量比较大,所有其他免费的vpn都不够用的,只有mxvpn的一个特定线路可以使用,可能大家都用这个线路,有的人拿他做点坏事也不一定,所以就不停的被cloudflare判做恶意站点或是机器人,所以验证码也就出现了。
之前没使用vpn的时候,偶尔也发生这个问题,着实让我头疼了一番,不过这次一并解决,写出来与大家分享下。
cloudflare中站点管理的最后一项,是个threat-control,这个是威胁控制,就是处理谁攻击你的计算机的一项,点击进去会发现有很多个ip(不同站点不同),这些ip都是它认为发生过有危险的访问,这些ip会被拒绝访问,找到自己的ip,点击Trust,信任该IP就可以了。
而且,即使你被要求输入验证码,当点击了信任以后,并不需求输入验证码,直接刷新就可以进入站点。
11MARCH |
|---|
本站点由于没有收入,只好使用免费的web空间000webhost,但免费的东西一定有各种各样的问题,前些天某个下午我自己访问站点的时候,竟然打不开网站,没有办法,向000webhost发邮件求助,不过我估计人家也爱答不理的,反正最后邮件也没回,但晚上看的时候,已经好了。不过由此开始,我就一直在想别的办法。
开始的时候,000webhost的ping值在300-400之间,而我的站点的ping值在500-600之间,着实无奈,直到发现有一个免费的cdn产品:CloudFlare。
CDN,全称Content Delivery Networks,即内容分发网络。其原理很简单,即用户访问时内容不是从原始服务器上获得的,而是从CDN智能解析的服务器上获取的,内容是缓存到CDN服务器上的。通常CDN服务商会有多个机房,而智能解析总是到访问最快的机房,所以通过CDN能显著地加快访问速度。另外还有一个好处是CDN加速可以减轻服务器的流量压力。
但是CDN也不是没有缺点,对于动态网页,由于有缓存,所以会造成延迟,很可能获取的的页面不是最新的,或者一些带有query的页面无法执行。但是对于静态内容效果还是十分显著的。
人家别人拿CDN是用来缓存静态内容的,我的网站要解决的问题却是整个网站的访问问题,也就是说,当000webhost临时出现故障的时候,我的站点还可以正常访问,抗几分钟算几分钟吧。当然,为此带来的短时间上的不同步,还是可以承受的。
本着试一试的态度,在CloudFlare上注册了一个帐号(注册使用的教程网上很多,这里就不写了),在dns上设置了nameserver的地址,就一直没转过去,后来发现从godaddy的dns管理中的的nameserver中添加CloudFlare的dnsserver是无效的,要在nameserver setting中做专门的设置,如图:
不过这个设置要24小时生效。
第二天,收到了CloudFlare的邮件,说设置已经成功了,马上登陆上去看了下,似乎快了点(感觉不明显)。然后ping下,效果如图:
这个ping值还是挺让人欣慰的啊。
不过使用它了之后,你修改了页面的样式或者添加了新的插件,是不能直接看到效果的,差不多要等个5分钟到10分钟吧。
最后呢,我还有个问题,某天我自己打开网站的时候,网站直接被转入一个什么安全的网站(man-hosting.com),说我的ip被两次发现有垃圾评论,不过输入一个什么验证码之后就没事了。我比较担心这个功能把许多来自中国的ip都给挡住了,而且本人也没有实地测试,不知道哪位大神能给予指点。
04MARCH |
|---|
使用chrome浏览器或者safari浏览器,经常会发现自己的textarea很奇怪,可以拖动放大缩小,而且还有个奇怪的边。最初我们遇到这类问题的时候,直接给设计交代说那是浏览器的特性,俺们管不着,结果人家拿来google做例子,我们做开发的无话可说。但美工也不知道怎么做,只好开发人员硬着头皮去比较google的源码去研究。也没啥好方法,一个一个尝试呗。
其实找到以后也很简单,这里记录下,免得忘记:
其一、页面输入框(input 标签)聚焦高亮。

屏蔽input聚焦高亮效果的样式:
input {outline: none;}
textarea {outline: none;}
**其二、文本框(textarea 标签)缩放功能。

**
/\*css2.0\*/
textarea {width: 400px;max-width: 400px;height: 400px;max-height: 400px;}
/\*css3.0\*/
texearea {resize: none;}
可能将来的网页会偏向简洁设计,所以webkit开发团队已经不考虑当设计的输入框是圆角的时候输入框和文本框出现的问题,所以当你隐藏了点击前的样式而你如果忘记去掉了聚焦后的webkit赋予的默认样式,webkit引擎浏览器的就会出现问题。
如图:
如果考虑兼容webkit核心的浏览器,建议设计输入框或者文本框的时候尽量保持原始的样式,如果设计做了很好看的圆角背影的效果,建议前端最好将下边的代码加到base.css里边去,避免用webkit浏览器看出现不同的效果。
04MARCH |
|---|
最近的项目中要自定义滚动条,之前这类的工作也做过,但是这次项目紧啊,看到这个设计一直在发愁。好在这次项目只需要兼容最新的chrome浏览器就可以,所以直接查找了下Webkit下滚动条的css写法,感觉不错。记录下来。
:window-inactive – 用于所有的滚动条轨道,指示应用滚动条的某个页面容器(元素)是否当前被激活。(在webkit最近的版本中,该伪类也可以用于::selection伪元素。webkit团队有计划扩展它并推动成为一个标准的伪类)。
28FEBRUARY |
|---|
昨天登录wordpress后台,发现提示有个插件有更新,本人向来喜欢最新的东西,有更新自然就忍不住要更新,就随手点了更新,结果不知咋回事更新了半天也没更新完,无奈刷新页面,网站却提示“正在执行例行维护,请一分钟后回来”。
有问题要解决啊,搜索下吧,发现月光也遇到过类似的问题,不过他那个是更新主题的时候出的问题,解决办法就是删除站点根目录下的“.maintenance”的文件,我就照做了,但是问题并没有解决,而是直接报错了,报错的路径是所更新的插件的路径。
之前我也更新过其他插件,而且站点的所有插件都是在线安装的,并没有出过什么问题,所以我认为程序并没有出错,很有可能是更新过程中,某些文件写了一半,却因为某些原因(比如虚拟主机临时故障)中断了,造成插件加载失败。于是将该插件的目录删除,并手工上传了一份最新的插件进去,结果就好了。
同时,这里贴一下网上其他朋友遇到问题时的解决办法:
首先,打开你的web文件,找到 /wp_admin/includes/class-wp-filesystem-direct.php 文件,修改它,没有权限请修改文件夹属性为777,然后去修改function mkdir这个函数,用下面的代码替换原有的代码:
function mkdir($path,$chmod=false,$chown=false,$chgrp=false){
if( ! $chmod)
$chmod = $this->permission;
// Fix “Cound not create directory” problem
if(ini\_get(‘safe\_mode’) && substr($path, -1) == ‘/’)
{
$path = substr($path, 0, -1);
}
// Fix “Cound not create directory” problem
if ( ! @mkdir($path) )
return false;
$this->chmod($path, $chmod);
if ( $chown )
$this->chown($path, $chown);
if ( $chgrp )
$this->chgrp($path, $chgrp);
return true;
}
22FEBRUARY |
|---|
html5的标准还没有最终确定,但关于视频播放器的标准基本上被卡住了。mazilla和Opera由于没有H264的版权,坚持不支持H264标准的mp4格式视频,只支持ogg和webm两种格式,其中webm是谷歌去年提供的一个新的标准,并将该格式开源;ogg似乎是早期的一种手机视频的格式,这个了解不多。但也许mp4视频效果比较好,现在应用比较广。而IE9、safari、chrome三大厂商不担心版权问题,都提供了对H264的支持。所以当前兼容所有支持html5的视频播放方案差不错都是这样:
对同一视频提供三种格式,即mp4、webm、ogg,但其实仔细想想,只需要提供两种:mp4和webm,就可以了。
videojs就提供了这样一套解决方案,他是一个兼容html5的视频播放工具,早期版本兼容所有浏览器,方法是:提供三个后缀名的视频,并在不支持html5的浏览器下生成一个flash的版本。
最新的3.1.0版本优化了之前的做法,只需要提供两个格式的视频,页面制作起来更加方便,只有两步走:
1、引用脚本,videojs很为你着想,直接cdn了,你都不需要下载这些代码放入自己的网站
2、页面中加入一个html5的video标签,要这么加:
其中post就是视频的缩略图,那俩source一个指向mp4视频,一个指向webm视频,在页面加载过程中,video.js会判断浏览器支持哪个格式视频,会自动加载可播放的视频。
简单吧!
进阶:使用api
获取对象:
var myPlayer = _V_(“my_video_1”);
后面那个就是就是video标签的id值,这是myPlayer就是播放器对象了。
播放:
myPlayer.play();
暂停:
myPlayer.pause();
获取播放进度:
var whereYouAt = myPlayer.currentTime();
设置播放进度:
myPlayer.currentTime(120);
视频持续时间,加载完成视频才可以知道视频时长,且在flash情况下无效
var howLongIsThis = myPlayer.duration();
缓冲,就是返回下载了多少
var whatHasBeenBuffered = myPlayer.buffered();
百分比的缓冲
var howMuchIsDownloaded = myPlayer.bufferedPercent();
声音大小(0-1之间)
var howLoudIsIt = myPlayer.volume();
设置声音大小
myPlayer.volume(0.5);
取得视频的宽度
var howWideIsIt = myPlayer.width();
设置宽度:
myPlayer.width(640);
获取高度
var howTallIsIt = myPlayer.height();
设置高度:
myPlayer.height(480);
一步到位的设置大小:
myPlayer.size(640,480);
全屏
myPlayer.enterFullScreen();
离开全屏
myPlayer.enterFullScreen();
添加事件
var myFunc = function(){
// Do something when the event is fired
};
myPlayer.addEvent(“eventName”, myFunc);
删除事件
myPlayer.removeEvent(“eventName”, myFunc);
所有事件列表:
Name
Description
loadstart
开始加载
play
播放.
pause
暂停.
timeupdate
Fired when the current playback position has changed. During playback this is fired every 15-250 milliseconds, depnding on the playback technology in use.就是时间变化吧,与具体的播放技术有关,不同浏览器及格式不同。
ended
播放结束
durationchange
Fired when the duration of the media resource is changed, or known for the first time.下载进度变化吧。
progress
进度变化.
resize
大小修改.
volumechange
音量变化.
error
出错.
虽然文章说明在不支持html5的情况下,会以flash播放,但在支持html5的firefox下播放mp4时,却遇到很大的困难,虽然调用了flash,但一直无法播放(不过我也一直怀疑我的firefox下的flash有问题,不知道是不是真的)。不过如果你听从videojs的建议,放两个格式的视频,就不会有这个问题了。
最后,这么好使的脚本,是免费的么?
经查,该脚本遵循LGPLv3协议,听着协议又头大了?这里讲个常识:
如果你的项目中要使用开源的代码,而你的项目又不开源,可选的开源协议有:BSD、MIT、LGPL、Apache Licence 2.0。其中前两种甚至可以修改源代码,但一定要标注版权;后两种可以随便用,但是不要随便改,呵呵。所以你要使用这个脚本的话,是完全可以的,api也这么全,至于css,并不受版权保护,你可以根据需要改变为你要的样式即可。
关于开源协议,如果有朋友有兴趣,可以留言讨论,我将来会单独写一篇关于开源协议使用分析的文章。
另:附件中提供了3.1.0版本和2.0.2版本,我们并没有将2.0.2版本的用法,但压缩包里面有demo,使用的时候要调用下:VideoJS.setupAllWhenReady();
另外video的写法中还有专门针对flash的写法,当然你也可以用这个插件实现纯粹的flash播放(只写flash那部分就好,可以保证统一的浏览效果,不过ios的浏览器不兼容flash,这就要你自己进行判断来处理了)。
10NOVEMBER |
|---|
今天早上看到的消息,说微软近日表示在Sliverlight的版本5正式发布后停止开发,虽然我觉得这是早晚的事,但现在听到这个消息还是比较惊讶,比原来预计的似乎早了很久。
记得09年初的时候,我对Sliverlight做过几天的研究。因为那时候Sliverlight炒的很火,话说美国总统奥巴马的竞选演说,使用的就是Sliverlight发布的视频。可谓盛极一时。但我当时的感觉总觉得微软是在于ADOBE抢一块蛋糕,或者是搅Adobe的局。因为大家都很清楚,HTML5标准一旦确定,可能Sliverlight和Flash都不存在了(当时我谈到这个想法时,记得还被朋友们嘲笑过)。
当时业界对HTML5标准确定的时间估计在2022年(记忆中),按照那个推算,至少要到2015年以后,HTML5才会逐渐被各家浏览器支持,也就是说,Flash和Silverlight可能要支撑到2020年以后才会逐步消失。这些是当年的估计了。但Iphone的出现与移动智能设备的迅速发展,大大加速了这一进程,去年已经有很多有远见的公司大量招聘HTML5的开发人员了。
此后Sliverlight版本升级到4.0后,又在很多方面接触Silverlight,比如WP7和Xbox,我感觉他的类库比较乱,WP7一套、7.1还有一套、PC上又有一套,而且互不兼容,各自为政——虽然都叫Silverlight。而就在不久前,微软还宣布要用Silverlight来统一这几大平台(Windows、Windows Phone和Xbox),要让他们兼容么?但微软还在各个方面独立发展,版本分裂严重。
今天早上看到的第一个消息是Adobe宣布移动版的Flash不再研发,后面就看到了微软的这则消息。难道这两家商量好的?Adobe的这个决定不难理解,他买下了PhoneGap(这个恰巧昨天的一篇文章就提到,呵呵),势必要推进在HTML5方面的开发标准,放弃移动版Flash甚至最终整个放弃Flash,完全推进HTML5。而微软呢?Silverlight一出生,就是冲着Flash来的,竞争对手要放弃了,他也没啥继续存在的必要了?
我觉得没这么简单。微软下一步一定要在手机和平板上有所作为,就要找到新的竞争目标,而现在市场占有率最高的手机系统是安卓。安卓是谷歌“无心插柳”的结果,这一结果使得谷歌不太好轻易放弃既得利益。我们知道,谷歌还有个系统叫做ChomeOS,那个才是给未来的HTML5市场准备的;安卓虽也支持HTML5,毕竟不是主要的优势。大力推广HTML5对ChomeOS有利但对安卓不利(影响原生App应该的开发者),安卓束缚了谷歌的手脚,使其在既得利益面前左右为难。微软的这项决策,即决定自己未来的方向,又笼络大批支持HTML5的开发者,还对谷歌来这么这么一手,可谓可谓一箭多雕。
闲话苹果,之前有看到分析称,推进HTML5对苹果有利,不推进也对苹果有利,苹果真是牛啊。
09NOVEMBER |
|---|
前两个月还在感叹WebOS的垮掉,现在突然发现HTML5比预期的时间提前来到了。难道真的是惠普的WebOS就是死在早了那么一两年么?那么真如现在所说的Oracle要低价收购的话,那真是在最合适的时间捡到一个大便宜啊。好了,废话不多说,今天推荐10款不错的HTML5的开发框架。
Sencha Touch是专门为移动设备开发应用的Javascrt框架。通过Sencha Touch你可以创建非常像native app的web app,用户界面组件和数据管理全部基于HTML5和CSS3的web标准,全面兼容Android和Apple iOS。这个是大名鼎鼎的EXT框架的公司整合其另外两个框架发展而来的,自然首先推荐。
今天 Sencha Touch 发布 2.0 的首个开发者预览版。这在 Sencha Touch 1.0 发布的一年之后。新版本主要工作侧重于性能提升、易用以及内置打包方面。
相关连接:
下载 Touch
Touch 文档
下载 SDK 工具 (Mac-only)
下图是 ST 2.0 和 1.0 在启动时间的比较:
另外 2.0 版本在文档方面也做了很多改进,查看 2.0 文档。
PhoneGap是一款HTML5平台,通过它,开发商可以使用HTML、CSS及JavaScript来开发本地移动应用程序。因此,目前开发商可以只 编写一次应用程序,然后在6个主要的移动平台和应用程序商店(app store)里进行发布,这些移动平台和应用程序商店包括:iOS、Android、BlackBerry、webOS、bada以及Symbian。上个月该公司已经被Adobe公司协议收购,有了强大的后台支撑。(话说Adobe也通过收购在HTML5开发标准上占了一席之地啊)
下面是一些使用该框架的代码示例:
获取地理位置:
//GAP will invoke this function once it has the location function gotLocation(lat,lon){ $('lat').innerHTML = "latitude: " + lat; $('lon').innerHTML = "longitude: " + lon; }
获取摄像头捕捉的照片
function takePhoto(){ var photo = gap:takePhoto(); return photo; }
honeGap Mobile App XDK,可以让开发人员创建、模拟和测试PhoneGap项目。该工具是一个集成开发环境(IDE),提供了用于创建HTML5和PhoneGap应用的全套开发工具。AppMobi称,新的XDK为PhoneGap项目开发提供了一个直观的开发环境。
备注: phoneGap已出现就有很大反响,现在国内有个http://phonegap.cn爱好者网站,里面有中文的使用介绍。
ChocolateChip-UI 是一个手机移动 Web 开发框架,使用 HTML5, WAML, CSS 和 JavaScript,基于 ChocolateChip JavaScript 库,包含新的 ChUI.JS 和 ChUI.css.可以在没有什么设计的情况下,开发出类似原生应用的界面来。
Joshfire是一个支持多种设备的开发框架,仅采用HTML5和JavaScript等标准,可以帮助开发者迅速开发本地专用的网络应用,用于浏览器、Node.JS、桌面电脑、智能手机、智能电视以及联网设备。
不管你针对哪种设备开发,Joshfire可以让你「一次开发,多处兼容」,自动兼容手机、平板电脑、电视等设备。
如果你想发布新闻、图片、音乐、视频,Joshfire框架可以帮你轻松开发全功能内容应用。
忘掉那些为触控板、电视遥控器、键盘、鼠标、Kinect准备的专门设计吧,你只需要描述你的应用,其他的交给Joshfire。
下载地址:http://framework.joshfire.com/download
它是针对移动和触摸设备的JavaScript 框架。DHTMLX Touch基于HTML5,创建移动web应用。它不只是一组UI 小工具,而是一个完整的框架,可以针对移动和触摸设备创建跨平台的web应用。它兼容主流的web浏览器,用DHTMLX Touch创建的应用,可以在iPad、iPhone、Android智能手机等上面运行流畅。
Jo这个框架可用于开发那支持HTML5的移动设备,如iOS,webOS, Android和Chrome OS等平台。
它拥有标准,类原生的UI元素比如用于屏幕登录的Web表单控件,还有弹出小部件可用于在用户点击界面时提供一些额外的信息。
可以查看其网站提供的示例页面,它例子展示了在多种移动设备平上的Jo应用情况。
http://joapp.com/downloads.html
mobl 其实是一个新的开源的编程语言,主要用于加速手机应用的开发,mobl 可方便构建手机 web 应用程序,包括 iOS、Android 和其他支持 HTML5 技术的手机。
主要特点:
Statically typed language, enabling great IDE support and as-you-type error detection, while reducing the amount of typing other statically typed languages require, through type inference.
Scripting language syntax similar to Javascript.
Declarative domain-specific language (DSL) for defining user interfaces.
Declarative concise DSL for defining data models. Data is stored on the device. No server back-end required.
Easy access to existing “native” Javascript libraries and widgets.
Compiler generates static Javascript and HTML files, ready to be deployed to any web host and to be cached on the device, to enable offline web applications.
SproutCore是一款HTML5的应用框架
Perkins 是一个 HTML5/CSS3 框架,主要为简化开发者和设计师的工具。使用一个基础的 HTML5 模板,包含多数所支持的标签以及一些 CSS 样式,便于创建诸如导航、圆角、渐进等效果。遵循MIT协议。
http://code.google.com/p/perkins-less/
一家名叫AppMobi的小公司,正致力一项工作,使开发者能创建可深入移动设备硬件或操作系统功能的HTML5应用, 如重力感应、加速计、GPS、相机、声音与震动、文件系统等,InfoWorld报道。‘其iOS MobiUs浏览器为游戏实现了HTML5的DirectCanvas API,并为将浏览器缓存中的可执行文件和数据存储在本地(以使应用可以离线运行)实现了HTML5本地存储API。但是使MobiUs不同于仅仅只是另 外一个浏览器的是,AppMobi在它上面提供了一个库,它能允许开发者访问本地硬件,并实现Web应用的消息推送。’
网站
其开发中心链接
http://www.appmobi.com/?q=node/27
API 文档
http://appmobi.com/documentation/index.html
这里罗列了这么多的HTML5的应用框架,大多数都没有尝试使用,不过多数的文档写的还算详细。而HTML5大多是冲着移动应用开发来的。其实在Web上的实现与在原生应用里面的效果如果一致,岂不是最受开发者和公司欢迎么?而对最终用户,才不管你使用什么技术、什么平台,只要效果好就可以啊。
20OCTOBER |
|---|
昨日有朋友问及关于facebook 的php sdk的问题,由于之前并没有关注其php sdk,并不是特别的了解,于是专门下载了php sdk来试用,现把学习所得与大家分享。
首先,到facebook的开发者站上下载php的sdk,具体页面在以下地址:
https://developers.facebook.com/docs/reference/php/
这个页面其实是使用文档,讲到了许多使用方法。下载后把下载的压缩包解压缩到站点的目录中即可。
下载的sdk中,有个example.php的文件(具体在example的子文件夹中),这其实就是一个登录并获取用户基本信息的一个演示。另外还有一个结合jssdk的演示,功能一样,效果不一样而已。
演示中提供了默认的appkey和secretkey,但是我只是第一次测试的时候,用它登录成功了,但后来再测试的时候就不能正常使用了,换了我的某一个应用的key,还是不能访问,提示说没有通过url访问的权限之类的说法。不得已,只好创建了一个新的应用,设置url为测试用的域名,还是报一样的错误。
仔细查找后发现,facebook此次升级版本后,增加了好多设置,其中有个url访问的设置默认是关闭的,将其打开即可。具体该选项在高级设置(Advanced)里,叫做Stream post URL security。
我们只分析php sdk的代码,关于jssdk的代码之前曾有文章提到过。
小提示:
使用php sdk,必须打开php_curl.dll,在php.ini中,找到该行,去掉前面的分号,重启apache即可。
首先,引入facebook 的phpsdk,并初始化facebook对象:
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => '191149314281714',
'secret' => '73b67bf1c825fa47efae70a46c18906b',
));
初始化中,要把appid后的数字修改为自己申请到的应用的appkey,secret也修改为对应的secretkey,注意secretkey是可变的,如果你觉得你的应用被其他人冒用,可以重新生成该值,但你所有的应用中对应值都要相应的修改。
查看是否有用户已登录:
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user\_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error\_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$user是通过sdk检测是否用户已经登录。
其中提到的几个方法分别说一下:
$facebook->getUser();
如果已登录,$user就是用户id,否则为空。
$facebook->getLogoutUrl();
如果用户已经登录,可以通过此方法,获取一个退出的链接。
$facebook->getLoginUrl(); 如果用户未登录,可以通过此方法,获取一个登录的链接。点击该链接会到一个登录页面并授权的页面,登录成功并确认授权后会返回之前的页面。
$facebook->api(‘/me’);
获取当前登录用户的详细信息;如果要访问某用户的信息,比如naitik’,则可以写做:
$facebook->api(‘/naitik’);
其中,$facebook->api(‘/me’); 就是调用具体api的写法。
前面的文章中提到过js sdk的使用,有这么一段:
FB.api({path}, 'GET', {}, function(response){
if (!response || response.error) {
alert('Error occured');
}
else {
…
}
})
其实这里的写法也是完全类似的,第一个参数就是路径,第二个参数是访问谓词,一般是GET、POST、DELETE等,第三个参数是一个数组,就是对应的方法的文档中所需要的参数。当然,我们这个程序就不需要回调函数了,呵呵,下面有一个完整的写法示例:
$facebook->api('/daaku.shah', 'DELETE', array(
'client\_id' => self::MIGRATED\_APP\_ID));
总的来看,facebook提供的sdk还是比较好用的。虽然在论坛上有许多人说它难用,但我估计是因为facebook太庞大了,api研究不过来,不像优库那样只有一个接口。对比严重抄袭facebook的renren,renren的api设计的简直是欠抽:那个东西才叫做难用,搞好几天都调不通!再一个,说说土豆,文档跟进缓慢,很多东西忘记写入文档了???而且示例也不通!
废话说多了,把国内的几个网站都得罪了,不过还是希望提到的几个网站能够及时优化,开发平台如果很难用,就别开放了。
好了,关于php sdk的入门就写到这里,感觉往下也没有什么好写的了(难道要写具体的api方法?)。如果朋友们有兴趣,欢迎留言,我们再深入探讨。
20OCTOBER |
|---|
[kivu]( “[email protected]”) -
嘻嘻,不错,写得很详细,把你这网址收藏了,有机会可以交流!
[kivu]( “[email protected]”) -
http://www.facebook.com/wbintl?sk=app_276923065674608在这个专题应用程序页,你的facebook就算登陆了,也得在这里 login一次才不会返NULL。请问LOGIN这一步能跳过?我想客户打开这个应用程序,直接获取他当前语言,选择对应语言专题。?
这个链接看似应该是打开一个应用,但链接并没有通过应用的方式去打开,如果链接:
http://www.facebook.com/276923065674608
则会到应用的介绍页面,点进入应用会有授权。
如果链接:
http://apps.facebook.com/wbabout/
直接到应用页面。
不知道是这个意思么?
[kivu]( “[email protected]”) -
facebook 换版了,以前在应用程序里点See App Timeline View然后就可以选择要把这个应用程序加到哪个专页的,现在不知道改哪里去,嘻嘻,你也看看怎么样才能把应用加入到指定专页!
[Jason]( “[email protected]”) -
ok,我正好有时间。
18OCTOBER |
|---|
之前,在一个站点的配置中增加了对mp4等文件类型的支持,重装系统后,发现站点的代码报错,错误内容即标题。详细情况如下
之前的IIS配置中,.mp4类型的文件默认无法访问,所以个人在IIS7.5的mime类型中增加了.mp4的类型的支持,但问题是需要每台机器中增加这些设置,不利于团队协作,于是,只好将这些修改体现在代码上,具体实现方式为:
在站点的web.config中增加了
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
<mimeMap fileExtension=".webm" mimeType="video/webm"/>
</staticContent>
修改后一直正常运行。
前不久本人的电脑C盘空间不足,折腾多次后,无奈格盘重装,分给C盘很大的空间,系统也改为64位。今日重新运行该网站,即报错:
配置错误: 在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项。
怪的是代码现在仍在他人机器上正常运行,所以百度寻求答案。有云IIS应用程序池如果是集成模式,改为经典模式即可,但尝试后没有效果。
当然google也查了,这次甚为奇怪,google查不到(某些关键字又被屏蔽了?)。
这时候才想起来自己解决,看说明,似乎是扩展名的设置重复了嘛。于是删除该段配置,发现程序正常运行,且对于.mp4文件仍旧支持。
原来是IIS7.5默认的文件扩展支持增多了,而且,更可恶的是百度到的各种解释,竟然没有一个说这种解决方法的。
不过,为了与大家的一致,这里加了一段多余的配置:
<staticContent>
<remove fileExtension=".mp4" />
<remove fileExtension=".m4a" />
<remove fileExtension=".m4v" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
……
</staticContent>