昨天去參加 PIXNET 第一次舉辦的 Hackathon ,來紀錄一下心得。
這次我們挑戰 app 開發,之前都寫寫 web 或 extension,想說應該要有所不同。
「果然碰壁。」由於開發時間只有 4 小時,又沒偷跑很多...
想當然爾就是做的不是很好,不過也學習到不少東西,還有認識一些高手。
今天就是要講一下 xAuth 這個認證方法,這是為了讓行動裝置等 mobile 系統比較好使用,而衍生出的 oAuth 變形,但就本質上他還是 oAuth ,只是相較的簡化。
我們後端是使用 python 來作開發,最熟悉的東西果然最好!
不過其實, xAuth 的最後一步,會因對象不同而寫法不同,像對 PIXNET 就不同於對 twitter,但還是分享一下哈哈。
Gist link: https://gist.github.com/ken8203/9724878
import json, urlparse import oauth2 as oauth from urllib import urlencode consumer_key = 'consumer_key_here' consumer_secret = 'consumer_secret_here' access_token_url = 'https://emma.pixnet.cc/oauth/access_token' consumer = oauth.Consumer(consumer_key, consumer_secret) client = oauth.Client(consumer) client.authorizations params = {} params["x_auth_username"] = username params["x_auth_password"] = password params["x_auth_mode"] = 'client_auth' client.set_signature_method = oauth.SignatureMethod_HMAC_SHA1() resp, token = client.request(access_token_url, method="POST",body=urllib.urlencode(params)) access_token = dict(urlparse.parse_qsl(token)) print access_token url = 'https://emma.pixnet.cc/oauth2/grant?grant_type=refresh_token&refresh_token=' + access_token['oauth_token'] + '&client_id=83e81e1ab0bebe20774f5b39af9a6db4&client_secret=25f9c36fbba5f88933a999d3bccfccb1' page = urllib2.urlopen(url).read() print json.loads(page)['access_token']
沒有留言:
張貼留言