不遵守 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 還要更煩人 -_-

使用前請三思..

本篇發表於 無分類雜文。將永久鏈結加入書籤。

不遵守 OAuth 標準的 Yahoo / Wretch API 有 15 則回應

  1. 通告: Tweets that mention Blog.XDite.net » 不遵守 OAuth 標準的 Yahoo / Wretch API -- Topsy.com

  2. roga 說道:

    看起來真的很糟糕..

  3. gdx 說道:

    我們後來發現取GUID的方法在這…
    developer.yahoo.com/social/rest_api_guide/web-services-guids.html

    很難找 +_+

  4. BB 說道:

    之前使用Yahoo Social API的 PHP Lib來通過OAuth,之後就可以直接存取Wretch的資料了….但是我根本搞不懂OAuth是啥阿…T_T

    不過目前還是只使用Facebook Connect而已,Wretch感覺商業模式要談會比較麻煩~ 不知道會不會像facebook這樣大方?

  5. 小海 說道:

    感覺有點像是幫無名 debug XD

  6. Polprav 說道:

    Hello from Russia!
    Can I quote a post in your blog with the link to you?

  7. 双色球 說道:

    大致上技術上的 issue 都在這裡…。

  8. 股票iiq 說道:

    我是用 xml-simple 作。

  9. 通告: door.urs.tw

  10. 速遞問答 說道:

    真的不太理想。

  11. 拆組達人 說道:

    這還真糟啊!醬子沒人願意協助開發了!惡性循環啊!

  12. 通告: door.urs.tw

  13. Benson 說道:

    其實Yahoo在稿自有規格
    也不是一天兩天的事了

  14. harebell 說道:

    你好:
    我想請問你是否有測試出post文章到blog的api,
    我依照他的文件設定必填的參數,但還是一直噴404
    參數的屬性值在文件上沒有寫清楚,
    因此想請教你,謝謝!

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>