這是前幾天開發 I’m Expert 時的心得感想。
I’m Expert 原本的重頭戲,其實是打算透過 OAuth 的方式,將文章同步到無名小站去。但現在看到的同步到 WordPress / PIXNET (皆使用 XMLRPC)這個功能。完全是因為時限之內作不出來,才想到的變通之道。
(我是比賽結束當晚才試出來的)
如果是個人實力因素,那完全認栽沒話說。但在經過好幾晚的徹夜研究加上到現場找無名 RD 直接討論之後,才發現作不出來根本不是我的問題。
(雖然很感謝現場幫助我的無名 RD,但我還是要幹角一下 -_-)
寫 Yahoo OAuth 以及 Wretch OAuth 幾個的困難點在於
1. Yahoo OAuth 不 follow OAuth standard.
2. Wretch 更不 follow Yahoo spec ( 要正確能動,php 開發者甚至要改掉 yahoo sdk 的 Yahoo.inc 檔裡面的 post function,沒有人知道這個 hack,官網上也沒有)
3. Wretch 某些 API 一直到比賽當天,根本都還是爛的。(10/1 公開發表,10/17 還是爛的)
4. 只要錯誤,一律噴 404,完全無法 debug。
5. 沒人看得懂 WretchAPI 的 document 要表達什麼…
而要解決這些問題:
1. 如果你是使用 Rails,oauth-plugin 已經拿掉了 YahooToken的設計。執意想要開發這個功能的開發者,必須自己 rollback 回來,然後基於 implement SocialAPI 的 形式自己寫出 WretchAPI。拿掉的理由, plugin 開發者寫在這裡,Yahoo OAuth 搞得他相當怒。
值得注意的是,Wretch post 吃 XML,而 YahooToken.rb 是用 json….,所以需要自己重寫 xml(get/post)的部份。我是用 xml-simple 作。
2. Wretch 沒有像 Social 一樣給出 guid 的 api 讓程式可以問,所以拿 guid 請自己想辦法 :/ 弔詭的是,wretch 的 API 都需要給 guid 才能拿/送資料。
3. php 開發者必須自行修改 yosdk.zip 裡的 Yahoo.inc 檔,把 post function 改成這一段
這段程式轉成其他語言版本的意義是
以開新相簿為例:
其實是要對 http://wretch.yahooapis.com/v1/albumService/ZKWHF6P5LXDZSICROTM76OS4CI/albums?class_id=1 丟 以下內容的 post
========
大致上技術上的 issue 都在這裡…。不過如果你真的想 implement 成商業產品,最讓開發者困擾的並不是這些,而是 Y! OAuth token 極容易 expire,大約 30 min 之內就會 expire。只要 token expire 掉就必須請使用者 reconnect ….
這才真正是令人抓狂的地方。比 BBAuth 還要更煩人 -_-
使用前請三思..


通告: Tweets that mention Blog.XDite.net » 不遵守 OAuth 標準的 Yahoo / Wretch API -- Topsy.com
看起來真的很糟糕..
我們後來發現取GUID的方法在這…
developer.yahoo.com/social/rest_api_guide/web-services-guids.html
很難找 +_+
之前使用Yahoo Social API的 PHP Lib來通過OAuth,之後就可以直接存取Wretch的資料了….但是我根本搞不懂OAuth是啥阿…T_T
不過目前還是只使用Facebook Connect而已,Wretch感覺商業模式要談會比較麻煩~ 不知道會不會像facebook這樣大方?
感覺有點像是幫無名 debug XD
Hello from Russia!
Can I quote a post in your blog with the link to you?
sure
大致上技術上的 issue 都在這裡…。
我是用 xml-simple 作。
通告: door.urs.tw
真的不太理想。
這還真糟啊!醬子沒人願意協助開發了!惡性循環啊!
通告: door.urs.tw
其實Yahoo在稿自有規格
也不是一天兩天的事了
你好:
我想請問你是否有測試出post文章到blog的api,
我依照他的文件設定必填的參數,但還是一直噴404
參數的屬性值在文件上沒有寫清楚,
因此想請教你,謝謝!