Thursday, November 4, 2010

[Facebook] Publish 發佈功能 via JavaScript SDK

Facebook on Web 03

Facebook的JavaScript SDK其實可以做到很多事,高興的話甚至可以用fql指令(facebook query language)去查詢資料,而這次來舉的例子是發佈功能Publish,這也是大家常在Facebook上看到FB遊戲會貼在塗鴉牆的訊息。


Facebook on Web 09

發佈的功能在Facebook上有程式碼與範例可以參考,請見JavaScript SDK - FB.ui,照用即可,我就不貼出來了,這邊只介紹一下各項參數,各參數影響的位置可以看上面兩張圖。

message: 使用者要說的話
name: 訊息標題
caption: 內容的標題
description: 內容敘述
href: name那個位置的連結
media:
  • type: 多媒體型態,可用'image','flash'等等
  • src: 檔案位置
  • href: 點下多媒體後會跳去的連結
action_links:
  • text: 右下方連結的顯示文字
  • href: 右下方的連結
user_message_prompt: 發佈時的提示訊息


基本上這些參數很多都是可以省略的,Facebook很聰明會自己想辦法,只要填你需要的資訊即可,不用想辦法都填滿。




實際上使用就是像這樣

如果有任何疑問請與我聯絡,感謝。

26 comments:

  1. 我發現在我電腦上的Chrome瀏覽器,發布視窗出來時會在頁面最上方,要拉上去才會看到,可是Firefox或IE卻是用另開視窗的方式,所以不會有這問題,真是詭異

    ReplyDelete
  2. 請問有無可能利用local端網頁發布訊息到facebook上面?

    ReplyDelete
  3. 看起來是沒有問題的。

    ReplyDelete
  4. 你好,我想請問載入javascript sdk的事..

    就我依照facebook上所說的在我自己寫的網頁裡貼上程式碼後(FB.init部分),再貼上FB.ui,但執行上卻無法顯示視窗出來,
    想請問當初你載入sdk的時候有什麼步驟嗎? 謝謝!!

    ReplyDelete
  5. 在chrome與safari上,若沒有先允許該app,那使用FB.ui呼叫一些功能會因為瀏覽器的安全性限制而無法使用,你有可能是遇到這個問題。
    如果可以的話把你的網頁連結給我,我看看會比較快XD

    ReplyDelete
  6. 因為我應用程式裡沒有設定什麼Canvas URL之類的,當初只是為了要用javascipt 的東西而去申請APP ID,所以也不知道是不是應用程式沒東西的問題QQ

    http://127.0.0.1/js_tt.html
    上面是我的連結網址,謝謝你!

    ReplyDelete
  7. 不好意思..打錯網址了QQ
    是 http://114.47.110.80/js_tt.html
    謝謝你><

    ReplyDelete
  8. <script src="http://connect.facebook.net/zh_TW/all.js#appId=133756766693527&status=1&cookie=1&xfbml=1"></script>
    這行去掉,然後把Fb.ui用function包起來,然後用onclick去觸發

    看起來你的問題是在還沒載入完成FB JS SDK時就先呼叫FB.ui,所以會有錯。

    ReplyDelete
  9. 不好意思..請問你指的function是要自己寫一個function包Fb.ui還是用上面的哪個function包起來呢?

    ReplyDelete
  10. 自己寫一個包起來啊XD
    其實你可以看我blog上的原始碼是怎麼寫的。

    ReplyDelete
  11. 我有照做囉,感覺是我應用程式的問題@@
    因為他跳出的視窗跑出這個訊息:
    API Error Code: 191
    API Error Description: The specified URL is not owned by the application
    Error Message: redirect_uri is not owned by the application.

    ReplyDelete
  12. 你要做的是什麼功能 ?
    然後你貼的錯誤訊息是Facebook要跟你取得這個app授權時,因為你app上設定的redirect_uri有誤所造成的,注意引用JS時app id要填對,然後app中網站位置要設對。

    ReplyDelete
  13. 我只是想試試JS SDK而已,因為我們專案要寫跟FB有關的東西
    我的APP ID有填對,那redirect_uri的部分是要在自己的網頁寫嗎@@? (不好意思一直打擾你..><)

    ReplyDelete
  14. APP設定內-Web Site-Site Url有設對嗎 ?
    然後你頁面拿掉了我沒辦法幫你測XD

    ReplyDelete
  15. 有耶,我Site URL:http://iopudding.blogspot.com/
    Site Domain:iopudding.blogspot.com
    他也顯示沒問題@@

    然後網頁在這邊:http://61.227.99.42/js_tt.html

    ReplyDelete
  16. 引用JS的網址要是site url內設的才有用XD

    ReplyDelete
  17. 原來是他QQ 我再試試看!!
    謝謝你~

    ReplyDelete
  18. 想請教一下 我這邊有facebook API的問題
    我這邊已申請完 app 取得id 跟 密鑰,
    我是用php sdk3版本去連接,但怎樣都連接不上
    sdk3最新的用法 getSession->getUsers;
    不管怎麼取 我echo它的值都是0 ,意思是根本沒連接上
    不知道跟我https沒有填上有沒有關係

    ReplyDelete
  19. 請問..若是要像youtube的分享功能那樣
    能夠發佈到自己塗鴉牆 好友塗鴉牆 以及社團
    請問該如何做到呢?

    目前我已經可以發佈到自己塗鴉牆,但我要的是發佈到社團.....
    謝謝你哦~!!

    ReplyDelete
    Replies
    1. 感覺上發布到社團應該是沒問題的,我有空找一下方式。

      Delete
    2. https://developers.facebook.com/docs/reference/dialogs/feed/
      參考Properties這段,應該是用to這個參數指到社團那邊就可以了
      不過我沒實際試過,如果你有試成功請說一下吧 :)

      Delete
  20. 感謝Died Liu哦~!!
    我快要瘋啦~~~感恩

    ReplyDelete
  21. 我就改了兩個參數
    method: 'send',
    to: 'groups後面的id',
    這樣就可以發佈到社團了
    變成適用傳送到社團,不知這樣有沒有錯誤??

    ReplyDelete
  22. 看起來應該是這樣沒錯,恭喜你

    ReplyDelete