無分類雜文 21 Oct 2009 04:53 pm
|
推到 Twitter!
推到 Plurk!
|
不遵守 OAuth 標準的 Yahoo / Wretch API
這是前幾天開發 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 還要更煩人 -_-
使用前請三思..
This
work is licensed under a
Creative Commons Attribution-Share Alike 2.5 Taiwan License.
[本文採 cc-by-sa 授權,白話意思就是可以直接轉走,但是要附出處與作者)]
15 Responses to “不遵守 OAuth 標準的 Yahoo / Wretch API”
on 21 Oct 2009 at 5:16 pm 1.Tweets that mention Blog.XDite.net » 不遵守 OAuth 標準的 Yahoo / Wretch API -- Topsy.com said …
[...] This post was mentioned on Twitter by Kirin Lin and xdite, KIKA. KIKA said: Reading: "Blog.XDite.net » 不遵守 OAuth 標準的 Yahoo / Wretch API" ( http://bit.ly/3rXKw2 ) ★這算是被無名用無名的方式反巴一掌嗎…… [...]
on 21 Oct 2009 at 5:59 pm 2.roga said …
看起來真的很糟糕..
on 21 Oct 2009 at 7:39 pm 3.gdx said …
我們後來發現取GUID的方法在這…
developer.yahoo.com/social/rest_api_guide/web-services-guids.html
很難找 +_+
on 22 Oct 2009 at 1:29 am 4.BB said …
之前使用Yahoo Social API的 PHP Lib來通過OAuth,之後就可以直接存取Wretch的資料了….但是我根本搞不懂OAuth是啥阿…T_T
不過目前還是只使用Facebook Connect而已,Wretch感覺商業模式要談會比較麻煩~ 不知道會不會像facebook這樣大方?
on 23 Oct 2009 at 8:34 am 5.小海 said …
感覺有點像是幫無名 debug XD
on 23 Oct 2009 at 7:08 pm 6.Polprav said …
Hello from Russia!
Can I quote a post in your blog with the link to you?
on 25 Oct 2009 at 12:54 am 7.xdite said …
sure
on 06 Nov 2009 at 2:56 pm 8.双色球 said …
大致上技術上的 issue 都在這裡…。
on 06 Nov 2009 at 2:58 pm 9.股票iiq said …
我是用 xml-simple 作。
on 09 Nov 2009 at 2:32 am 10.door.urs.tw said …
wretch 收錄於部觀門(Digest by door.urs.tw)…
這篇文章有很多有關 wretch 的資訊, 因此收錄於部觀門精選文章 (This article got many useful information about wretch, so we digest in BlogDoor system)…
on 09 Nov 2009 at 12:39 pm 11.速遞問答 said …
真的不太理想。
on 10 Nov 2009 at 1:59 pm 12.拆組達人 said …
這還真糟啊!醬子沒人願意協助開發了!惡性循環啊!
on 02 Dec 2009 at 2:57 am 13.door.urs.tw said …
yahoo 收錄於部觀門(Digest by door.urs.tw)…
這篇文章有很多有關 yahoo 的資訊, 因此收錄於部觀門精選文章 (This article got many useful information about yahoo, so we digest in BlogDoor system)…
on 08 Dec 2009 at 11:42 pm 14.Benson said …
其實Yahoo在稿自有規格
也不是一天兩天的事了
on 12 Dec 2009 at 4:59 pm 15.harebell said …
你好:
我想請問你是否有測試出post文章到blog的api,
我依照他的文件設定必填的參數,但還是一直噴404
參數的屬性值在文件上沒有寫清楚,
因此想請教你,謝謝!