雖然已經有一些制式的製作方式:
等等的,皆可以透過 Quiz 關鍵字在 Facebook 查詢到許多跟測驗相關的應用。大部分是已經製作好流程的,只要填寫一下問題、結果,就可以很快地完成一張測驗表。然而,有時候要推服務時,可能會用到許多 Javascript API ,往往那些 Quiz 製造機只適合用來填寫文字跟圖片,這時候就還是得靠人工方式了!沒錯,就是要寫程式!此例以 PHP 跟 Javascript 為範例實作。
製作一個 Quiz 的流程,主要可以分成四部份:
- 顯示問題及收集答案
- 顯示結果前,詢問是否要邀請朋友參與
- 顯示結果和留言
- 將結果發佈至塗鴉牆
整體上可以簡化到兩步,就是顯示問題收集答案跟顯示結果,但這樣會使得最後一頁要做的事很多,我做了一兩個制式的測試,發現還有每一個問題就要換一個頁面,這種理由多半是要顯示廣告用的,使得每到一頁就多了一次廣告流量。我覺得分成四部份應該還滿恰當的,再細分下去有點不妥,除非是介面的設計或是問題太多。
在實作上,依上述分類可以分成 3 個頁面,第一個頁面負責顯示問題跟收集答案;第二個頁面則是提供使用者便利地點選朋友寄送邀請函;第三個就是顯示結果,以及留言的顯示,至於第四部分則可在第三頁搭配 Javascript 來提供發送,故可以少一個頁面。
流程:
- 新增與設定 App
- 可參考 Facebook API Example - 第一次使用、範例和教學筆記
- 此例採用 FBML 而非 IFRAME 模式
- 顯示問題及收集答案
- 一般的 HTML Code
- 顯示邀請朋友參加的介面
- FBML 版
- <fb:fbml>
<fb:request-form action="?status=2" method="POST" invite="true" type="MyAppName" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/my_app_name/\" label=\"Authorize My Application\"") ?>"
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
- <fb:fbml>
- Iframe 版
- <fb:serverfbml style="width: 100%;">
<script type="text/fbml">
<fb:fbml>
<fb:request-form action="?status=2" method="POST" invite="true" type="XFBML" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/my_app_name/\" label=\"Authorize My Application\"") ?>"
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
</script>
</fb:serverfbml>
- <fb:serverfbml style="width: 100%;">
- FBML 版
- 顯示結果後,提供 Post 到個人塗鴉牆(採用舊式申請 template 的方式,facebook 已打算在 2009/12/20 停用此功能,此例先保留給舊式範例,新式用法歡迎參考:發佈到個人塗鴉牆的樣版設定教學)
- FBML
- <script type="text/javascript">
var template_id = number_id;
var user_message_prompt = 'What do you think of this book?';
var user_message = {value: 'write your review here'};
var template_data={
'test_name':'Taipei' ,
'test_result':'OK',
'images':[{'src':'http://pad.thedigitalmovement.com/_blaise/2007-06-15-dgen-breakfast.jpg',
'href':'http://tw.yahoo.com/'}]
}
var body_general='';
var target_ids = '';
var continuation = function() {
// do something
};
Facebook.showFeedDialog( template_id, template_data, body_general, target_ids , continuation, user_message_prompt, user_message );
</script>
Iframe- <script type="text/javascript">
FB_RequireFeatures(["XFBML"], function(){
FB.Facebook.init( 'appapikey' , '/path/xd_receiver.htm' , null );
var template_id = number_id;
var user_message_prompt = 'What do you think of this book?';
var user_message = {value: 'write your review here'};
var template_data={
'test_name':'Taipei' ,
'test_result':'OK',
'images':[{'src':'http://pad.thedigitalmovement.com/_blaise/2007-06-15-dgen-breakfast.jpg', 'href':'http://tw.yahoo.com/'}]
}
var body_general='';
var target_ids = '';
var continuation = function() {
// do something
};
FB.Connect.showFeedDialog( template_id, template_data, target_ids , body_general, null, FB.RequireConnect.require, continuation, user_message_prompt, user_message);
</script>
- <script type="text/javascript">
- 至於 template_id 部分,則是要先去製作樣版
- FBML
- 新增留言板
- <fb:fbml>
<fb:comments xid="a_unique_id" showform="true" canpost="true" candelete="false">
<fb:title>請留下寶貴的意見</fb:title>
</fb:comments>
<fb:fbml>
- <fb:fbml>
常見問題:
- 什麼是 templates
- 這是一個預先刻劃好的樣版,可重複使用,只需要填寫關鍵字就行了!最大好處是可以很漂亮的排好擺在塗鴉牆上,而搭配關鍵字的變動,就可以拿來當做測試結果的顯示,好比如 A 得 90 分、 B 得 75 分等等,就只要把關鍵字弄成可變動囉!詳細部份可以到 http://developers.facebook.com/tools.php?templates 玩玩,可以為自己的應用程式製作專屬的樣版,而上述就是一個使用樣版的塗鴉牆例子。
- 採用舊式申請 template 的方式,facebook 已打算在 2009/12/20 停用此功能,此例先保留給舊式範例,新式用法歡迎參考:發佈到個人塗鴉牆的樣版設定教學
- 無法顯示 templates
- 要特別留意傳給 templates 的資訊,連 images 變數中的 src 位置不存在也會導致不會顯示,當初以 IE 測試,發現很久都沒顯示訊息,改用 Firefox 才蹦出 src 位置不對的消息,另外,還可以參考下面連結的 showFeedDialog 的相關文章,有的跟隱私有關。
- 使用 fb:request-form 之 略過 / Cancel 問題
- 當第二頁採取呈現 Invite Friends 頁面時,當使用者點選 [略過] 或 [寄送邀請] 時,頁面將導向於 action 的位置,然而,有時我們會使用 GET 的方式來掌控頁面流程,但有些時候不希望將訊息暴露在瀏覽器的 url 資訊上,此時可以解決的方式是將資料改採用 POST 傳遞
- <input type="hidden" name="status" value="2" />
- 並多加個 <fb:request-form-submit />
- 留意的是當使用者點選 [略過] 或 [Cancel] 時,這份資訊卻不會送給 action 所指定的頁面,最簡單的處理方式,就是使用 SESSION 變數來處理
- 在進入第二頁時,將 $_SESSION['flag'] = 1
- 當使用者用了 [略過] 或 [Cancel] 時,就可在 action 所指向的 url 進行處理囉,例如得知此 flag 資訊,自動將 status 設成 2 。設定完後,可以再將 flag 清掉
- unset( $_SESSION['flag'] );
- 當第二頁採取呈現 Invite Friends 頁面時,當使用者點選 [略過] 或 [寄送邀請] 時,頁面將導向於 action 的位置,然而,有時我們會使用 GET 的方式來掌控頁面流程,但有些時候不希望將訊息暴露在瀏覽器的 url 資訊上,此時可以解決的方式是將資料改採用 POST 傳遞
參考資訊:
- Facebook Developer Wiki
- showFeedDialog inexplicably does not work for a specific
- Feed action request limit reached
- 其他跟本篇較沒關係,與 Flash 或 Connet 相關的文章
- Facebook App.開發心得分享
- Facebook Flash Application開發心得(1) - FB Connect - how to start
- How to add Facebook Connect to your website using Javascript
簡單的 FBML 範例程式,需填寫 API Key 、Template ID 等設定:
<?php
// Copyright 2007 Facebook Corp. All Rights Reserved.
//
// Application: TEST
// File: 'index.php'
// This is a sample skeleton for your application.
//
require_once 'facebook.php';
$appapikey = 'your_app_api_key';
$appsecret = 'your_app_secret';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();
$template_id = 0123456789;
$status = isset( $_REQUEST['status'] ) ? intval( $_REQUEST['status'] ) : 0 ;
switch( $status )
{
case 1:
?>
<p style="width:100%;text-align:center;">
...等待結果運算...<br /><br /><a href="?status=2">觀看結果</a><br />
</p>
<fb:fbml>
<fb:request-form action="?status=2" method="POST" invite="true" type="MyQuizName" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/your_app_name/\" label=\"Authorize My Application\"") ?>" >
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
<?php
break;
case 2:
?>
<script>
function do_post()
{
var template_id = <?php echo $template_id; ?>;
var user_message_prompt = '想說的話:';
var user_message = {value: ''};
var template_data={
'test_name':'Tapie' ,
'test_result':'OK',
'images':[
{
'src':'http://pad.thedigitalmovement.com/_blaise/2007-06-15-dgen-breakfast.jpg',
'href':'http://tw.yahoo.com/'
}
]
}
var body_general='';
var continuation = function() {
// do something
};
Facebook.showFeedDialog( template_id, template_data, body_general, '', continuation, user_message_prompt, user_message );
}
</script>
<p style="width:100%;text-align:center;">
測試成果:100分<br /><a href="#" onclick="new Dialog().showMessage('測驗結果', '100分').onconfirm = do_post ; return false;">詳細資訊</a><br />
</p>
<?
break;
default:
?>
<form id="testForm" method="POST" action="?status=1">
<input type="hidden" id="Q_number" name="Q_number" value="1" />
<table width="100%">
<tr>
<td>Q1:你會製作表單嗎?</td>
</tr>
<tr>
<td>
<input type="radio" name="Q[0]" value="1" />會 <br />
<input type="radio" name="Q[0]" value="2" />不會
</td>
</tr>
<tr>
<td>
<button style="submit" onclick="document.getElementById('testForm').submit();">Submit</button>
</td>
</tr>
</table>
</form>
<?php
break;
}
exit;
?>
2009/10/28 筆記:
上述例子採用單一檔案(index.php)搭配參數(status)來決定目前的狀態(1:填寫答案,2:邀請朋友,3:顯示結果與張貼個人塗鴉牆),在部分情況會有一些問題,如新增留言板服務時等等的。
測試結果,建議可以改成 3 個頁面獨立運作比較乾淨,依序是 index.php 、 invite.php 和 result.php,程式碼範例如下:
- base.php
- 這個是下面這幾支程式的最上頭都要 include 進來的片段
- <?php
// Copyright 2007 Facebook Corp. All Rights Reserved.
//
// Application: TEST
// File: 'index.php'
// This is a sample skeleton for your application.
//
session_start();
require_once 'facebook.php';
$appapikey = 'your_app_api_key';
$appsecret = 'your_app_secret';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();
$template_id = 123456789;
?>
- index.php
- <?php
require( 'base.php' );
?>
<form id="test" name="test" method="POST" action="invite.php">
<table width="85%">
<tr>
<td><br /><hr width="70%" /></td>
</tr>
<tr>
<td>
Q1:請問太陽是否都從西邊出來?
</td>
</tr>
<tr>
<td>
<input type="radio" name="Q1" value="1" checked /> Yes <br />
<input type="radio" name="Q1" value="2" /> No <br />
</td>
</tr>
<tr>
<td><br /><hr width="70%" /></td>
</tr>
<tr>
<td>
Q2:請問月亮是否都從東邊出來?
</td>
</tr>
<tr>
<td>
<input type="radio" name="Q2" value="1" checked /> Yes <br />
<input type="radio" name="Q2" value="2" /> No <br />
</td>
</tr>
<tr>
<td>
<button>送出</button>
</td>
</tr>
</table>
</form>
- <?php
- invite.php
- <?php
require( 'base.php' );
// 計算分數
$_SESSION['score'] = 0;
if( isset( $_REQUEST['Q1'] ) && $_REQUEST['Q1'] == 1 )
$_SESSION['score'] += 50;
if( isset( $_REQUEST['Q2'] ) && $_REQUEST['Q2'] == 2 )
$_SESSION['score'] += 50;
?>
<fb:fbml>
<fb:request-form action="result.php" method="POST" invite="true" type="MyQuizName" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/your_app_name/\" label=\"Authorize My Application\"") ?>" >
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
- <?php
- result.php
- <?php
require( 'base.php' );
?>
<script>
var message = '你真厲害';
function do_post()
{
var template_id = <?php echo $template_id; ?>;
var user_message_prompt = '感言:';
var user_message = {value: ''};
var template_data={
'images':[
{
'src':'http://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Facebook.svg/200px-Facebook.svg.png',
'href':'http://www.facebook.com/'
}
] ,
'level' : message
}
var body_general='';
var continuation = function() {
// do something
};
Facebook.showFeedDialog( template_id, template_data, body_general, '', continuation, user_message_prompt, user_message );
}
</script>
<h1>測驗結果: <?php echo $_SESSION['score'] ; ?> 分</h1>
<a href="#" onclick="new Dialog().showMessage( '分數' , '<?php echo $_SESSION['score']; ?>' ).onconfirm = do_post;return false;">張貼至個人塗鴉牆</a>
<hr witdh="95%" />
<fb:comments xid="a_unique_id" showform="true" canpost="true" candelete="false">
<fb:title>請留言</fb:title>
</fb:comments>
- <?php
除了要更改 base.php 中的資訊外,要記得在 result.php 中的 template 等資訊也要適當修改,我記得如果連 src 位置打錯或不存在時,此時就不會蹦出樣版喔,要分外留意啦
你好,請問你一個問題...
回覆刪除為什麼我選擇FBML模式開發的時候...
網頁總是回應我...
"""
載入應用程式頁面時出錯。
此連結 http://127.0.0.1:8000/wenfbapp/ 無效。
請稍候並再試一次。我們感謝你的耐心等待,wen 與 Facebook 的開發人員會盡快解決這這個問題。
"""
而我選擇Iframe模式開發的時候,FBML的時候FBML的語法也不會顯示...
可以請教你是哪邊出了問題嗎?謝謝~
版主回覆:(03/13/2011 01:02:56 AM)
有一陣子沒碰, 又快忘了 @_@ 我先猜測一下,若我猜錯請多多包含
--
那個 url 位置是不是有問題呢?127.0.0.1?理論上應該要是個 public ip 位置,有可能用 iframe 模式時,127.0.0.1代表你的本地端,因此你恰好可以連到你的電腦而顯示正常,但採用 FBML 時,facebook 會去連 127.0.0.1 這個位置,但這個 ip 默認為自己的機器位置,因此 facebook 只會找他自己,就無法找到你的位置囉,請先確認一下 Canvas Callback URL 是否填寫正確,不能填 127.0.0.1 ,至少該填寫你的機器 public ip 囉
至於選 iframe 模式時, 的確有滿多 FBML 語法是不會有效的, 我當時沒試很多, 只發現好像有部份解法, 你得再花點心思找資料, 最後我是改成整體上用 FBML 作, 有特別要其他 Javascript 等 framework 的部份, 另外在用 Fb:iframe 來處理
祝你好運囉!
大大
回覆刪除你寫的對我們這種咖
有點看不懂
能不能稍微再詳細一點
一步一步來
最好配上圖,我們比較容易進入狀況
感謝
我最近很想做一個Quiz
或者有做好的API可以直接來用呢
謝謝
版主回覆:(10/21/2009 03:29:08 AM)
如果你是要做現成的 Quiz 就使用別人已經建好的來製作就行, 就是我最上頭列的那幾個, 那個就能依照制式的規格建出來囉 :D 我這篇主要是用在想要自己寫程式去加加減減的, 比較適合熟悉 PHP & Javascript 的人來使用, 因此呈上的是關鍵的片段程式碼, 與圖文或一步步的方式較不同, 而你說想要有做好的 API, 那可以先試試最上頭提到的 Quiz 製造機, 或許已經夠滿足你囉 :)
我試過了
回覆刪除他好像沒有可以打分數的功能
所以不太適合我用
而且沒有公布正確答案的功能
版主回覆:(10/25/2009 11:25:44 AM)
建議你先問看看有沒有這類的 Quiz 可套用, 或許可以透過那些現成的來製作, 因為我並不常使用 Facebook 玩 Quiz , 因此不是很清楚.
如果你都找不到而想要自己來做, 那有不少事要懂, 例如最基本的 HTML 表單(form)跟 PHP 的 $_POST 或 $_GET 或 $_REQUEST 的變數使用等.
整體架構, 大概在第一頁用 HTML 表單弄出問答, 接著送到第二個頁面, 先使用 PHP 以 $_POST 或 $_GET 或 $_REQUEST 來接收結果, 並依照你的設計完成判斷哪題對或哪題錯, 如此一來也計算完分數, 也可以確定哪些結果要顯示正確答案
最後, 你可以在第二頁直接印出結果, 或是像我一樣再丟到第三頁來呈現, 但這你要去處理怎樣把資訊丟到第三頁的動作喔, 上述程式碼並沒提及, 而當初第二頁我是拿來邀請朋友用的.
以上我附的程式算是有類似的架構, 如 default 代表第一頁, case 1 是第二頁, case 2 是第三頁, 你得自行去修改程式
很抱歉我時間有限無法細部教學, 若你不太懂 HTML 或 PHP 的部分, 建議找個人現場教一下, 以免一直用 try 的比較花時間
祝你實作順利啦 :)
請問有沒有加入好友的iframe或是Fbml語法呢???
回覆刪除網路上找了好久說><"
版主回覆:(10/27/2009 10:32:49 AM)
我沒用過, 剛稍微找也沒找到 @_@
那請問可以透過Iframe或是Fbml達到這個效果嗎???
回覆刪除版主回覆:(10/25/2009 04:16:01 PM)
這我沒接觸過 Orz 現在沒也沒時間嘗試了, 真抱歉
第四個步驟 : 提供 Post 到個人塗鴉牆
回覆刪除有什麼方法可以讓它自動Post到個人塗鴉牆呢??
我找了好久都沒看到可以用FBML來做的方法
版主回覆:(10/26/2009 04:22:37 AM)
我覺得發佈到個人塗鴉牆這件事與使用者個人隱私有不小的關係, 不太適合自動化. 我找資料的過程中, 恰好也沒看到任何自動化的介紹, 你有需要再花點時間確認看看, 祝你好運啦
對其他 lib 的使用, 倒是可以先逛一下 API 囉, 例如 Stream.publish
http://wiki.developers.facebook.com/index.php/Stream.publish
嗯嗯 我在多研究一下
回覆刪除謝謝大大
請問大大,
回覆刪除顯示邀請朋友參加的介面,跟Post 到個人塗鴉牆是會有彈出視窗嗎?
我用iframe跟FBML試了,為什麼都沒有? (IE跟firefox都一樣)
有什麼要特別注意的地方嗎? @@?
謝謝!!
版主回覆:(10/26/2009 04:21:18 AM)
以邀請朋友參加的介面來說, 以 FBML 為例, 只需打上這段(上述程式碼的片段)
<fb:fbml>
<fb:request-form action="?status=2" method="POST" invite="true" type="MyQuizName" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/your_app_name/\" label=\"Authorize My Application\"") ?>" >
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
(需在修改上述部分位置, 如 url 等)
就會出現可以點選好友的介面, 點選完於最下面寄送邀請. 這個最後還是會跳出視窗詢問你有沒有要加什麼話給對方的.
至於 POST 到塗鴉牆上也是會蹦出視窗, 問你要不要順便寫上什麼評語. 你可以先把頁面弄到最簡單, 甚至只貼上剛剛那段程式碼, 若可以正常執行, 那代表可能有其他地方影響到(例如Javascript有問題)
iframe mode 比較麻煩一些 :P 你得留意如何使用喔
謝謝大大~
回覆刪除不過我試著拿原本的sample改(顯示25個朋友那個)
在最後面加上那段程式碼,也是一樣沒有彈出視窗 ><
而且連sample那個 Hello 後面,也不會顯示任何ID?!
是我少安裝了什麼嗎? 只有25個朋友有列出來 (畫部設定用 FBML)
但因為我的URL是內部IP,所以用http://apps.facebook.com/xxxxx/會連不過去
我是直接打Canvas Callback URL去測,不知道有沒有關係?
謝謝你了!!
版主回覆:(10/27/2009 10:37:29 AM)
"因為我的URL是內部IP,所以用http://apps.facebook.com/xxxxx/會連不過去" 這個就是關鍵問題囉
我剛試著新增一個應用程式,一樣是用 FBML 模式,並且貼上 Sample Code 以及上則留言所提到邀請介面的程式碼,最後的結果是有印出 25 位朋友的 ID 以及顯示出邀請介面囉。
但是, 如果不是透過 http://apps.facebook.com/xxxxx/ 方式去連,還是會印出 25 朋友,但不會印出那個視窗。
這個現象是很合理的,你要先了解 FMBL 模式流程,其實是你連到 http://apps.facebook.com/xxxxx/ 時,Facebook後端機器才去連你設定的 Canvas Callback URL 來取得資料,緊接著,它會依照裡頭填寫的 FBML 程式碼再置換成相對於顯示上瀏覽器的 HTML , CSS 或 Javascript 程式碼,因而產生那些效果。
因此,你直接去連 Canvas Callback URL 時,雖然還是可以正常去 Facebook 上撈出 25 位好友 ID 並印出來,但其他的 FBML 並不會工作囉,另一種解決就是用 Iframe 模式。
最後,寫 Facebook Apps 還是要提供外部 IP (Public IP)供人連過去才是,不然你寫好的程式就可能只有你自己能看到(以Iframe模式),這樣意義也就不太大了 @_@
Dear
回覆刪除我有個FB上建立的問題,我想要在粉絲專頁裡面建立一個像底下連結一樣的表單http://www.facebook.com/Clarins 裡面tell us這樣的表單,請問一下是用FBML寫嗎?另外在粉絲專頁也可以插入物件讓網友們下載使用嗎?!
如果您方便,是否可以回覆到我的email?!感恩
版主回覆:(10/28/2009 10:48:30 AM)
粉絲頁面我還沒玩過 所以你講的我都不會 還沒碰過囉 等我有空再玩玩囉 因此 就不寄信吵你了 :)
請問
回覆刪除我配置好了 在http://apps.facebook.com/*****/上面能顯示朋友的ID
而在Canvas Callback URL我自己上門顯示Uncaught exception 'FacebookRestClientException' with message 'Session key invalid or no longer valid' 這個怎麼回事?
版主回覆:(10/28/2009 11:51:56 AM)
Hm..這情況我沒碰過, 環境不同難以幫你 debug Orz
我目前開發是用 FBML 模式, 幾乎什麼效果都是 http://apps.facebook.com/xxxx/test.php 這種方式來測試, 沒直接連去 Canvas Callback URL 來測.
這真的快跟開發嵌入式一樣了 XD 每一次改變都要去連 facebook, 很花時間 :P
站長大大你好~~
回覆刪除請問一下若是用iframe怎麼透過fbjs的方式送邀請給好友~~
版主回覆:(10/30/2009 03:15:00 AM)
第一步:
http://wiki.developers.facebook.com/index.php/Cross_Domain_Communication_Channel
第二步:
<fb:serverfbml style="width: 100%;">
<script type="text/fbml">
<fb:fbml>
<fb:request-form action="?status=2" method="POST" invite="true" type="XFBML" content="快來挑戰!<?php echo htmlentities("<fb:req-choice url=\"http://apps.facebook.com/my_app_name/\" label=\"Authorize My Application\"") ?>"
<fb:multi-friend-selector showborder="false" actiontext="邀請朋友參加此測試">
</fb:request-form>
</fb:fbml>
</script>
</fb:serverfbml>
哇!我有好多問題想問您耶!
回覆刪除我的能力不是很好,得問些很普通的東西喔!
我想問:
我想要在自己的程式post資訊到個人塗鴉上,我該怎麼寫呢?我依了您的方式,有點不行耶!
我可以請教一下:
template_id, template_data, body_general, continuation, user_message_prompt, user_message
其中所真正代表的東西是什麼嗎?
拜託拜託您了!
版主回覆:(10/30/2009 03:08:03 AM)
嗯, 目前我呈現的例子是 FBML 模式(非iframe模式), 如果你在 http://apps.facebook.com/xxxx/ 上至少有把 Sample 程式跑出來, 呈現出朋友清單了, 那至少已經完成基本的環境囉
這篇所教的 template 的用法 facebook 已打算不支援, 所以如果已經完成基本的設定, 那你可以看一下這一篇 http://changyy.pixnet.net/blog/post/25291900 (Facebook API Template Bundle - 發佈到個人塗鴉牆的樣版設定教學) , 把該篇的程式貼上, 接著要記得呼叫 do_post() 即可囉.
不好意思,我想先把舊的弄成功耶!請問一下,這裡的第三個result如果照貼,會成功嗎?是不是點「張貼至個人塗鴉牆」就會連到什麼地方呢?另外,你的意思是不是要我們先弄一個template呢?
回覆刪除版主回覆:(11/01/2009 01:45:47 AM)
舊的本身要去申請一個 template 才能用, 但因為目前 facebook 已經把申請功能停掉了, 因此無法申請一個 template_id , 更不用說使用 template 囉, 所以, 只好在發佈至個人塗鴉牆這邊, 改用新的方式.
如果你直接照貼第三部分(result.php), 基本上不會發生什麼事, 只是無法張貼至塗鴨牆.
而發表至個人塗鴉牆就是在個人頁面發表一則訊息, 可以給好友看到
請問下 我現在想上傳文件 用$_FILES['userfile']取傳過來的數組 我在我的Canvas Callback URL是能打印出來 但我在我facebookapp 裏面卻為空的 這是怎麼回事呢?
回覆刪除版主回覆:(11/01/2009 04:11:36 PM)
不曉得你是不是用 FMBL 模式? 你要的功能可能 FBML 模式不能滿足你, 因為 FBML 模式流程圖是由 facebook 向你的 server 要資料, 因為上傳的動作變成使用者上傳到 facebook, 這就滿有機會被擋掉.
這種功能感覺是 iframe 模式才行 (詳情我沒試過, 也都不確定orz)
相關資訊請看看這邊吧, 裡頭有 FBML 跟 iframe 模式的流程圖
http://wiki.developers.facebook.com/index.php/Choosing_between_an_FBML_or_IFrame_Application
站長你好
回覆刪除我想讓塗鴉牆上應用的comment 和like 成為公用 像粉絲頁裏的comment 和like一樣 能看到有多少人評論了 我應該怎麼去做 謝謝!
版主回覆:(11/04/2009 10:47:21 AM)
最近有空試了
Facebook API Template - 塗鴉牆共同互動留言教學
http://changyy.pixnet.net/blog/post/25788405
我又回來了.借樓上的問題問下
回覆刪除是用api的粉絲頁推廣好,還是原來的那種粉絲頁推廣好呢?
兩者,目前我沒有發現什麼不同,不知道api 的粉絲頁是否可以改名成www.facebook.com/xxx 這樣.
版主回覆:(02/12/2010 09:32:08 AM)
你問的問題我也還沒玩 XD 所以得請你自行去試試囉, 我也不曉得哪種比較好, 至於網址位置部分亦不清楚
你寫得真好,謝謝你的分享,讓我這個初學者可以好好參考一下!
回覆刪除另外有個問題想請教一下,如果想把像一般外面提供部落格小工具的內嵌
程式碼也擺在Facebook的粉絲頁或社群的左邊小方框,
是不是有什麼比較簡單的做法?
譬如外面已經有一些Quiz的小工具,也提供介面產生程式碼,
我可以怎樣搭配利用呢?
版主回覆:(03/30/2010 03:04:47 AM)
不好意思,你的問題我不太清楚該怎樣解決,我並沒有在玩粉絲或社群頁面,頂多寫寫 PHP 程式而已,稍微逛了一下,我也沒找到如何增加"小方框"的方式,所以暫時沒有想法該怎樣幫助你囉
那有辦法把一些內嵌的程式碼放在facebook的個人profile上嗎?
回覆刪除版主回覆:(04/15/2010 10:07:13 AM)
我昨天在應用程式的粉絲頁面,其中的簡介區,有稍微試試 HTML 的 iframe 語法,並沒有成功。這也是很合情合理,因為會有一些安全性的問題,所以很多站都是有擋掉的。(像 Javascript 語法也常常會被擋掉)
至於其他你講的地方,就得靠你自行去 try 看看囉。
了解,感謝你的分享~
回覆刪除最近因為需要一個免費的web hosting server給facebook呼叫時服務,
在 http://www.joyent.com/ 上面找到可以申請一年免費使用的計畫,
如果大家有需要的也可以去申請玩看看。
你好!!請問一下台灣啤酒裡的頁籤"玩啤報"的是用哪一種的應用程式而成的,附上連結!!再請回覆一下~~感謝
回覆刪除http://www.facebook.com/beer.taiwan#!/beer.taiwan?v=app_126177754080232
版主回覆:(04/16/2010 12:10:01 AM)
抱歉,小弟沒有玩過這個部份,無法幫上忙
想請問一下用fbml 開啟朋友邀請清單後,
回覆刪除有辦法知道邀請了哪些人嗎?或是知道哪些人有點接受繳請?
版主回覆:(09/29/2010 12:10:24 AM)
Hm...我沒用過 XD
頂多邀請完就算了