LiveConnect OAuth2

講的比較仔細的是這幾篇:Mobile and Windows desktop appsOAuth 2.0 (Live Connect)Server-side scenarios (Live Connect)Developers – Learn how to bring data from Hotmail, Messenger, and SkyDrive to your mobile apps,第1篇比較粗略,但夠簡單。第2篇是有仔細講解參數以及流程(含圖),可以在遇到問題時做參考。看過以後,發現步驟的確是OAuth2,但就是沒辦法用 python oauth2 去套,就只能照步驟來硬刻了。

有試過httplib2,看能不能parse HTML再去摹擬POST登入,結果會回一個400的錯誤,拿到錯的頁面。python內建的webbrowser,只會用browser開出畫面,但沒有提供方法可以取回在網址列的網址。看來在拿 access token/authorization code 的部份,就只能先組出sign in的url,把瀏覽器開出來,讓使用者先去登入,然後允許以後,再請使用者把網址複製下來,貼到程式的輸入,讓程式去擷取 access token/authorization code,再保存下來。就先這樣子做吧,以後有更好的方法再來修正。

pyskydrive/skydrive .net api client

靈機一動用python+skydrive去找,有找到pyskydrive這個project,試用結果,是不行。專案是去年釋出的,追蹤了一下,發現是因為Skydrive頁面HTML一整個改掉,已經不能用原來的方法去parse了。

改看SkyDrive.Net API Client的source code,看能不能fork出來改。可是看跟試驗的結果,發現也不行使用。他使用的方法也不是正規作法,因此認証那關都過不了。

看來只能自己刻了。在LiveAPI的網站上有看到是使用 OAuth 2,就先安裝了 python oauth2 的library,可是參考範例以後,發現怎麼樣也套不上微軟的LiveAPI OAuth。於是就只能看官方的介紹跟文章來實驗與重刻了。

skydrive+fuse?

好像沒人寫,先找資料看看。

收集資料:

整體看起來,不要使用python,使用 mono+fuse+SkyDrive .Net API Client 似乎是比較好的解?!

電影流水帳(2011/11/21~2011/12/23)

轉眼2011年已經要到底了,今年比較沒有認真在看電影,一方面是忙,一方面是中午要跟同事一起吃飯,看電影的時間不夠,又想要休息,所以就斷斷續續的看。隨文附上輕熟女一枚,她是Lena Headey,The Brothers Grimms的女主角,根據IMDB上的資料,她才大我兩歲…
#05 Lena Headey (ENG)

  • The Brothers Grimm(IMDB, Wikipedia),中譯:神鬼兄弟。這是在網樂通上看完的,相當好看的電影!!裏面有好多格林童話的梗,像是白雪公主、長髮公主、糖果屋、小紅帽…等等的,然後再把這些梗寫到電影的主軸故事裡,很精彩!!格林兄弟是一對靠裝神弄鬼過活的兄弟,但弟弟其實是個喜歡研究民間傳說的學者。統治者知道他們的名聲(惡名),就抓來讓他們去某個真正有怪事的村落,看他們是否能解決。經過探查之後,發現真的是有怪事,然後認識了女主角Angelika,原來Angelika的妹妹是最先失蹤的,被村民當作是帶賽的人隔離在外。兄弟兩發現真的超級奇怪,監視他們的人覺得這兩個傢伙很怪,就又把他們帶回統治者那邊,統治者又再給他們一次機會。這次弟弟要進去塔裏面,發現了皇后被下了永生咒,而不是永保青春咒,整個皮囊都腐朽了,所以才會找人來幫他恢復青春,而那個人好死不死就是Angelika的爸爸。接著省略,因為兩個兄弟進出森林了幾次,都快讓我想不起來了。總之,最後就是藉著打破鏡子破除了皇后的魔法,救出了所有失蹤的小孩。
  • Harry Potter and the Deathly Hallows Part1(IMDB, Wikipedia), Part2(IMDB, Wikipedia),中譯:哈利波特-死神的聖物。劇情跟書差不多,導演、編劇有認真,辛苦他們了,把兩本書的故事塞到4個小時的電影裡,個人覺得精彩度不如小說,不過真的算不錯了。哈利一開始就開始逃,以避免佛地魔的追殺。跟榮恩、妙麗一起流亡的日子,除了要找魂器之外,也面臨了三人感情惡化的問題。Part 1 在救出 Luna,小精靈死掉,佛地魔取得死神聖器裡的魔杖而告終。Part 2則是在佛地魔準備大舉進攻霍格華茲學院開始,三人進到學校找到並消滅魂器,最後跟佛地魔決戰。我個人覺得石內卜(Snape)真的是超級偉大的,尤其是他在向Dumbledore哀求那段,真的可以很深刻的感受到他對哈利媽媽的愛。好吧,真的,哈利波特系列電影終於結束了,一共八集。

SSL3_GET_SERVER_CERTIFICATE

這是根據錯誤訊息找到的文:Curl: SSL certificate problem, verify that the CA cert is OK – ademar@toronto,但很可惜,對我沒用。

我是用virtualenv去建出我所需的python環境的,我安裝了oauth2,oauth2連帶安裝了httplib2,試著寫一個小程式想試試看oauth2時,卻吐出了這樣的錯誤:[Errno 1] _ssl.c:480: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed。接下來的情況,就幾乎是鬼打牆,找了一堆,都是講要更新憑證。後來靈機一動,因為在某篇文看到說可以用curl_setopt跳過檢查認証,所以就跑去看httplib2的源碼,好死不死在 site-packages/httplib2 下被我看到 cacerts.txt,啊哈,應該就是你吧,就去這裡cURL – Extract CA Certs from Mozilla下載了cacert.pem,然後拿這個檔案替換了cacerts.txt,就搞定了認証的問題。

Android 2.3.x 的 JavaScript Interface

星期天利用Google reader看文的時候,看到Fred大的這篇:Android 問題百出之 2.3.x 的 JavaScript Interface,我就心想,完了,我踩到雷。因為最近正好在實驗WebView Javascript與Java部份,回家一試,果真如此,真的頭很大。

再上網找了一下,發現很早以前就有人回報這個問題,喂,我說Google啊,那為什麼不修?!(怒),這個討論串很長,連PhoneGap開發小組也都有回。結果沒辦法,只能參考Fred大的文去改了。可是改了以後,卻怎麼樣都不能動,連原來的會導向到LogCat的部份都失效了,試了好久,又去StackOverflow找,找了幾篇,像:Uncaught TypeError when using a JavascriptInterface…等等,但還是不行,真的讓人摸不著頭緒。

後來是發現 onConsoleMessage 應該是要加 @Override 的,現在卻不用了,上網去Android reference找,才發現我搞錯類別名稱了。一個是WebChromeClient,而Fred大文章裡用的是WebViewClient,搞清楚,修改程式以後,這才讓我有了log利器,能用這個來去找到Javascript修補程式的錯誤,並修正。

為了要可以自動化為類別產生javascript修補程式的步驟,我運用了Annotation去標記需要產生Javascript代碼的函式,這樣就可以運用reflection的方式去找到這些函式,並產生程式,以注入到WebView裡面去。為了避免老是改程式,我也利用了Google瀏覽器,直接把產出的Javascript程式,放到Google瀏覽器的網址列去執行,這樣很快就知道哪裡有錯誤,並且修正。

總之,大概就是這樣子,解決了。

電影流水帳(2011/11/21~2011/12/2)

  • Johnny English(IMDB, Wikipedia),中譯:凸槌特派員。相當爆笑的故事啊,英國第一號情報員因為Johnny的失誤而掛掉,接著,一堆情報員又因為要幫第一號情報員送終而死光光,那就只剩下Johnny跟他的跟班了。過沒多久,他們接到保護英國王冠跟權杖的任務,不幸的是,保護不力,王冠跟權杖失蹤了,幸運的是認識了漂亮的女主角。於是他們展開調查,調查的過程裡,很顯然的,Johnny的跟班比Johnny本人更適合當情報員,後來搞了一堆烏龍,Johnny被首相開除,很失意的回家。女主角找到他,重燃起他的信心,讓他深信沒有他就無法阻止壞蛋登上王位,在阻止壞蛋登上王位的過程,又搞了一個超大的烏龍,但也讓壞蛋在公開的場合忍受不了,說出了不好的話,因此揭穿了陰謀。最後當然是皆大歡喜的解決了這個事件,和平落幕。
  • The Green Hornet(IMDB, Wikipedia),中譯:青蜂俠。我個人覺得不好看,劇情普普。特效的部份,在當年的科技或許那樣子是相當先進的,可是在今天看起來,卻顯得很拙,不合時宜,而且沒有交代年代,有種奇妙的時空背離感。唯一令人驚奇的是那個煮咖啡機,竟然可以瞬間加熱,炒好咖啡豆,然後研磨並立即有熱水去濾泡,這一台如果能量產,應該會有不少玩家買才是。
  • Fast Five(IMDB, Wikipedia),中譯:玩命關頭5。搞了四集之後,Dom、Brian、Mia聚在一起,再次偷車,卻發現了巴西最大犯罪公司的秘密,再加上美國中情局派出Luke來追捕他們,於是他們開始逃竄。但在逃的同時,決定用他們得到的秘密來幹一票,把最大犯罪公司的錢都偷光光。然後據說是前面幾集的人又再次聚在一次,開始演練計畫,並且施計讓犯罪公司的首腦把錢集中到警局,準備去偷。在正要下手的當天,Luke帶人衝了進來,抓住了Dom、Brian、Mia,並準備把他們移交到美國,移交的半路被犯罪公司襲擊,Luke的小組死光光,Dom、Brian、Mia被女警察鬆開,出手幫了Luke。Dom超火大,決定無論如何都要幹這票,Luke也加入了,說是要報仇。Luke首先衝到警局,把地下停車場清空,Dom跟Brian兩台車跟著進去把大大的保險櫃拖了出來,開始在街上跑,一狗票警車就在街上展開追逐,看著他們兩台車拖著大保險櫃跑來跑去真的很過癮。兩台車後來把保險櫃拖到了橋上,沒路跑了,Dom讓Brian先走,自己跟一堆警車對幹,然後利用慣性讓保險櫃撞到犯罪公司首腦開的車,犯罪首腦僥倖從車裡逃了出來,但卻沒逃過緊追而來的Luke的子彈。Luke最後還是以中情局的立場跟Dom與Brian說,錢你們不能拿走,兩人很瀟灑的離去。離去之後,Luke打開保險櫃一看,發現保險櫃早在跟警方追逐戰時就被調包了。一個皆大歡喜的結局,最後的最後,有埋了梗,看起來是Luke要挑起Fast 6大樑的樣子。相當好看的一部動作片,前面有點悶,雖然有些情節不是很合理,但後面相當精彩。

emulator無法啟動

這蠻奇怪的,但只要每次我在 AVD Manager 要啟動時,勾選 Wipe user data 以後,就都可以啟動。可是因為要手動指定 proxy 的關係,我必須用指令列的方式,但加上 -wipe-data 卻沒有用,上網搜了一下發現 Android Emulator can’t start, ’cause of wrong folder裡面有提到要設定 ANDROID_SDK_HOME,於是在命令提示字元裡先設置 set “ANDROID_SDK_HOME=c:\Documents and Settings\your_name” 之後,就可以順利啟動 emulator 了。
以後要省這麻煩的話,可以在”我的電腦”/”內容”/”進階”/”環境變數”裡去新增,就可以一勞永逸了。