注:本文Facebook的设定画面不再适用,更新的画面自2011/09/3起于建立新的Facebook应用程式呈现。
Facebook是最近新兴的潮流
每个人都在谈论Facebook跟他们新的应用程式平台:
- Techcrunch – Facebook Launches Facebook Platform; They are the Anti-MySpace
- Mashable – Facebook Powertools: 150+ Apps, Scripts and Add-ons for Facebook
- Digg – The Impact of Facebook’s Platform
- Mashable – Facebook Platform: 30+ Awesome Applications for Facebook
- Valleywag – Developers, beware. Facebook really is the new Microsoft.
- Facebook’s Blog Post on the Facebook Platform
- Inside Facebook – Hottest Facebook Apps: July 28th
[adsense]
ㄚ琪必须承认这真的很cool,所以我决定使用Facebook平台来建立一只应用程式,我会用PHP来写,而且我认为对其他人来说知道如何使用PHP来写他们自己的Facebook应用程式是有用的,所以就让我们在这里开始吧!
我会学到什么?
ㄚ琪会讨论使用Facebook PHP函式库的基本知识以及如何让你的应用程式启动,包括:
- 安装Facebook开发应用程式
- 下载Facebook PHP SDK
- 建立你的应用程式
- Hello Facebook! 范例
- FBML – Facebook标记语言
- 使用Facebook API
开始准备成为Facebook开发者
首先,你需要的,当然是Facebook的帐户,你可以在www.facebook.com注册Facebook,一旦你有了你的帐户你会需要安装Facebook开发应用程式,这个小工具允许你生成你的应用程式配置文件以及获得一个API金钥(稍后更多的讨论),一旦你登入到Facebook拜访:www.facebook.com/developers/ 或是点击下面连结来安装开发应用程式:
PHP Facebook SDK
Facebook已经建立了一个不错的php函式库让你不用写一堆额外的程式码来使用他们的API,你可以在https://github.com/facebook/php-sdk 抓PHP版本的函式库,按下载按钮选择最新的版本来下载。
一旦你下载了函式库解压缩到一个你PHP指令码可以存取的资料夹,所以你可能会建立这样的/php_include_directory/facebook/资料夹,在那个资料夹里你会有整个Facebook PHP,我是使PHP5所以我的例子会使用“client”目录,footprints资料夹是范例应用程式。
建立你的应用程式配置文件以及API金钥
Facebook需要你注册每一个你做的应用程式,一旦你登录到Facebook并且安装了开发应用程式到开发人员面板(或点击这里),在我的应用程式里点击“建立新的应用程式”。
输入应用程式名称,这很重要因为它是使用者在浏览应用程式目录时可以看到的资讯,目前这个名称栏位只有在搜寻应用程式时才会用到,所以这一点更加重要,之后勾选同意的选项按Create App。
取得应用程式ID跟应用程式密钥. 现在你应该看到你的应用程式列出一个独一无二的API金钥跟应用程式密钥,你会在你的应用程式使用到这两个资料。
接下来点击Facebook集成,填写“Canvas Page”,这是你在Facebook里的应用程式,例如应用程式叫做“Achi Is Very Cool”那么应用程式的URL可以是:“achiiscool”这样子的完整网址:http://apps.facebook.com/achiiscool/。
填写“Canvas URL”. 接着填写Canvas URL这是你指令码的位置,这是在你的web伺服器上公开的网址,Facebook应用程式所在的地方,请注意你只能填http://job.achi.idv.tw/hellofacebook/这样的网址或是有问号之类。
选择Canvas Type的类型,你可以试试看,Iframe或FBML的差异,很多人建议使用Iframe看起来比较简单使用,ㄚ琪在试FBML的时候,看到好多标签语法是不合乎FBML使用的,所以也要小心,而且新旧版本的差异也会带出语法错误的讯息。
在上面的范例里,我们的应用程式是http://job.achi.idv.tw/hellofacebook/, 这允许使用者可以增加我们的应用程式到他们的Facebook的侧边栏位中,不过这要点击submit it连结来提交,ㄚ琪看到有些限制才能提交说,所以还是要慢慢的试试看。
Changes saved. Note that your changes may take several minutes to propagate to all servers.
其实说要几分钟,但是看起来马上就能使用,你可以试试看。
Hello Facebook!
让我们建立第一支很简单的应用程式,这支程式只是跟目前的Facebook使用者说hello,这里有Hello Facebook! 应用程式的原始码:
<?php
include_once ‘facebook/client/facebook.php’;
$facebook = new Facebook(array(
‘appId’ => ‘你的应用程式ID’,
‘secret’ => ‘应用程式密钥’,
‘cookie’ => true,
‘domain’ => ‘achi.idv.tw’
));
$session = $facebook->getSession();
if (!$session) {
$url = $facebook->getLoginUrl(array(
‘canvas’ => 1,
‘fbconnect’ => 0
));
echo “<script type=’text/javascript’>top.location.href = ‘$url’;</script>”;
} else {
try {
$uid = $facebook->getUser();
$me = $facebook->api(‘/me’);
$updated = date(“l, F j, Y”, strtotime($me[‘updated_time’]));
echo “Hello ” . $me[‘name’] . “<br />”;
echo “你最近更新个人档案的时间是” . $updated;
} catch (FacebookApiException $e) {
echo “Error:” . print_r($e, true);
}
}
所以当使用者点击Canvas Page URL(这个范例是http://apps.facebook.com/achiiscool/)会发生什么事?程式会产生一个荧幕像这样给使用者看:
在使用者按下同意按钮后(当然如果登入的使用者不是你的话,建议你改按’不是你吗?’的连结),你会看到像下面的画面那样:
Facebook Markup Language – FBML
刚刚ㄚ琪说Canvas Type可以选FBML,这是Facebook在你的应用程式里提供了一堆的内建标签来提供动态资料,你必须做的就是含括正确参数的标签来使用,像是fb:name的标签,不过ㄚ琪没有用,而且Facebook的官方网站的说明有这样一段叙述‘We are in the process of deprecating FBML. If you are building a new application on Facebook.com, please implement your application using HTML, JavaScript and CSS. You can use our JavaScript SDK and Social Plugins to embedded many of the same social features available in FBML. While there is still functionality that we have not ported over yet, we are no longer adding new features to FBML.’,看起来FBML连他们自己也不太赞成使用了,所以我就不多说了,你可以使用的FBML标签可以参阅:http://developers.facebook.com/docs/reference/fbml/
Facebook API REST-基础介面
Facebook官方网站上也有这样一段叙述‘We are in the process of deprecating the REST API. If you are building a new Facebook application, please use the Graph API. While there is still functionality that we have not ported over yet, the Graph API is the center of Facebook Platform moving forward and where all new features will be found.’,看来这个REST API也不赞成使用了,并且鼓励我们使用Graph API,好吧,所以像
$fb_user = $facebook->user;
$about = $facebook->api_client->users_getInfo($fb_user,'about_me');
之类的程式码使用,应该都要小心使用才是,这一类的API呼叫可以参阅:http://developers.facebook.com/docs/reference/rest/
注:另外很多网站的PHP程式都满旧的了,像是require_login() 、require_add() 的函式都已经不再新的PHP SDK里头了,所以使用时应先注意SDK的版本
进阶阅读与资料
有很多帮住的资讯ㄚ琪建议你可以阅读来帮助你的应用程式可以更好。
- 基本的Facebook应用程式架构 其实这只是一个维基的随机页面。
- 在应用程式里网址是如何处理的 这也是个随机页面
- 当然官方的说明文件/开发人员网站是必读的:
- Facebook Developers Site
其他的Facebook教学跟如何做的文章:
- 10 Things That Would Have Been Nice to Know When Starting My Facebook Application
- Developing with the Facebook Platform and PHP
这样学程式太累了,只想在部落格用Facebook的功能:
※2012※在Blogger上加上Facebook“赞”按钮
有空ㄚ琪看能不能找到更多的资料翻译给各位瞧瞧!
当翻译要附原文连结阿(烟)
http://www.merchantos.com/2007/07/facebook-php-tutorial/
谢谢您喔,不过这篇文章有点过时,阿琪不建议去看。
当翻译要附原文连结阿(烟)
http://www.merchantos.com/2007/07/facebook-php-tutorial/
谢谢您喔,不过这篇文章有点过时,阿琪不建议去看。