顯示具有 Plurk 標籤的文章。 顯示所有文章
顯示具有 Plurk 標籤的文章。 顯示所有文章

2010年10月15日 星期五

AS3分享至社群網站與微網誌的兩件小事

現在的網站製作通常會有個分享到Facebook、分享到Plurk的功能。之前接一個案子發現兩個小地方:
第一:以前剛開始用這些分享機制時,找到的文件說明通常是使用javascript,呼叫Facebook或Plurk等所提供的分享程式,後面代入分享的網址、文字等。但其實也可以使用URLRequest,設定好要傳送的網址跟參數,再用navigateToURL去呼叫。這其實是理所當然的事,我竟然最近才發現......。
第二:在有使用swfAddress,網址中有/#/的情形下,分享到Facebook後,#後面會被自動清除的問題,之前通常是寫個轉址的程式,分享的時候網址#後面的路徑把它改成一個參數,在轉址程式裡面再將它重組回去,然後轉到該頁。好處是這樣也可以順便去做動態改變顯示圖片,內文,以及計數等動作。但其實也是有辦法讓分享網址帶#的。
首先,將"/#"改成"%2F#","%2F"其實就是"/"。這樣Facebook就會保留#與後面的東西了。不過又發生一個問題,就是Facebook似乎又會在網址後面幫你多加個"/",所以"/#"就會變成"//#",這樣連結又不對了。這邊又有個小技巧,就是在網址後面,"/#"的前面,多帶一個參數,例如"?rnd=1111",這樣即使多加了一個"/",還是可以正常連結。如果將分享寫成一個function,我們可以在function裡多一段程式幫我們自動轉:
if (url.indexOf("/#") >= 0)
{
  url = url.replace("/#", "?rnd="+String(Math.floor(Math.random()*10000))+"%2F#");
}
url是我們傳進去要分享的網址,例如:
"http://www.aaa.com/#/About",
上面這段程式碼就會幫我們轉成:
"http://www.aaa.com?rnd=2845%2F#/About";
分享後,Facebook會解讀成:
"http://www.aaa.com/?rnd=2845/#/About";
".com"後面會自動多一個"/",但這不影響連結。
當然如果原本分享的網址就想帶其他參數,那就要再多點判斷了。

2010年1月14日 星期四

7分14秒瀏覽PLURK API功能

前一篇大致介紹了如何用Flash去玩Plurk API,然後做了一個簡單的Demo,這篇試著用中文把Plurk API裡的功能講出來,給創意以及企畫作參考。首先,請自行熟悉一下Plurk介面以及功能,我懶的抓一堆圖說明啦~

用Flash玩Plurk API


去年12月初,Plurk終於開放了官方的API,看了一下上面的簡介,只要能發送HTTP requests的語言就可以呼叫它,回傳的是JSON encoded data,這些Flash都可以處理。不過因為跨網域的問題,一開始Flash並不能單獨跟它溝通,唯一可行的是透過php或其他程式當中介。幸好最近Plurk已經把crossdomain.xml放上去了,這樣一來,Flash也能直接呼叫Plurk API了。既然這樣,就趁著空檔測試一下吧!但才玩了一兩天,就發現了一個大問題:登入的方式也太簡單了吧!?讓使用者在第三方網站輸入帳號密碼就可以登入,那麼我寫一個網路活動,讓使用者來登入Plurk帳號密碼,然後偷偷把這些使用者的帳號密碼塞進資料庫,之後不就可以任意使用這些人的Plurk帳號了嗎?仔細想想,好像還沒遇過哪種服務是以這麼簡單的方式來登入。Facebook靠一堆繁複的Session來驗證,Yahoo或Windows Live ID都是經過他們特定的網頁來登入,Flickr也要在他們網站上允許上傳程式連結後才可以上傳照片。是我漏掉甚麼了嗎!?拿著Plurk的帳號密碼到一台新的電腦確實就可以登入了呀~~這漏洞也太大了吧!所以請容我在第一段就大膽的直接下結論:目前Plurk API不適合拿來做網路活動!這篇文章直接結束,我可以躲進被窩裡面睡覺了嗎?當然不是這麼簡單~~這個API也才推出一個多月,也許隨時會有甚麼修正也不一定,況且也不一定只有登入使用者的Plurk帳號才能玩,拿個公用帳號來玩或許也可行啊。所以還是先來了解一下Plurk API能做啥吧。