3/25/2011

Dropbox PHP API

 因為某 Xntel-Xtu Lab 的網站說想要可以讀dropbox 上的檔案,要可以上傳檔案,可以下載檔案
所以我用了這支 http://code.google.com/p/dropbox-php/


但是它裡面問題還滿多的,主要有兩點



  1. file name 或是 folder name中間有空白,就會掛掉

  2. putfile 不能用PHP OAuth extension ,要用 PEAR's HTTP_OAUTH package 


第一個問題主要是原來的code在呼叫dropbox api時,沒有用urlencode包起來,
因為我目前只有用到 getMetaData putFile getFile move ,所以這幾個function 已經修好了(我是懶人)
附上改好的api 檔:link   (取代原來API.php的位置, 我的話是在 /usr/share/php/Dropbox/API.php)


第二個問題只要改成用
$oauth = new Dropbox_OAuth_PEAR($consumerKey, $consumerSecret);
就可以了


附帶提一下,安裝oAuth-Pear 時會跳出alert 說alpha版不行唷,加個-f強制一下就好了
pear install -f HTTP_OAuth


 

3/12/2011

ldap sync with Google apps for education

說明文件:http://www.google.com/support/a/bin/answer.py?answer=106368
pdf: http://www.postini.com/webdocs/gads/admin/gads_admin.pdf


流程:



  1. 利用configuration manager 建立configuration file(xml)

  2. 利用sync-cmd  指令讀取剛剛建立好的檔案 (sync-cmd -a 才會套用,不然只會當作模擬)

  3. 設定crontab 定期執行sync  


Note:



  • sync是單向的( 只會改google apps的資料,並不會改動ldap上的data)

  • configuration manger 就是上面網址的windows版本

  • linux的sync-cmd指令要下載上面連結的linux


 


遇到的問題:


unsolved:



  1. 轉過去以後有些user無法建立帳號: InvalidHashDigestLength(1405) - InvalidHashDigestLength(1405)
    http://www.google.com/support/forum/p/Google%20Apps/thread?tid=5dbcecd8358da574&hl=en

     


solved:



  1. configuration manager 在win7好像要用system administrater 執行,不然會完全沒反應

  2. google api 出現 "Domain cannot use API": 去control panel 的group ,要把"Enable provisioning API"打開

  3. ldap server上每個帳號一定要有mail的資訊,否則會被skip掉

  4. default 新建的user好像都會變成suspended 還在研究要怎麼處理: 用configuration manager建的xml 裡面<suspended >被寫成True了,要把它改為False


 pending:



  1. csie有設tls加密,configuration沒辦法設定,所以連不上server
    TESTING: http://www.google.com/support/forum/p/Google+Apps/thread?tid=0b9d3f130628f63b&hl=en
    (結果太麻煩,我決定用ldap就好,然後限制可以連port 389的機器 ~~~  xDDD)

3/11/2011

javascript failed in IE

我決定要留一篇集合文,以免老是不小心踩到雷=.=

  1. trim:
    string.trim() will fail in IE, you have to use trim(string)

  2. event.target:
    use event.srcElement instead of event.target