成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python開發可用于iPhone的Google Reader API

開發 前端 后端
Google Reader是我最喜歡的web服務,可惜在iPhone上沒有一個我理想中的客戶端,所以只好自己動手豐衣足食了。

而開發的第一步自然就是搞定Google Reader API,可惜Google一直沒有放出官方文檔。所幸的是前人已經通過反向工程探尋出了相關信息(GoogleReaderAPI、Using the Google Reader API和GReader-Cocoa等),所以不用自己去一一摸索了。

不過文檔有點老了,這期間Google也稍微改了一些東西,所以還需要稍作修正。

由于現在手頭上沒有Mac,所以就不用Objective-C,而拿Python來演示。這樣代碼量也會少很多,邏輯顯得更加清晰。

在訪問之前需要證明你的身份,所以先去https://www.google.com/accounts/ClientLogin獲取登錄憑證。

此處需要POST 3個字段:service為'reader',Email為Google賬號,Passwd為密碼。此外還可以附加source字段用于標明你的客戶端,其中網頁版是'scroll',iOS網頁版是'mobilescroll',你可以隨意改成其他字符串。

  1. from urllib import urlencode  
  2. from urllib2 import urlopen, Request  
  3.  
  4. LOGIN_URL = 'https://www.google.com/accounts/ClientLogin' 
  5. EMAIL = '你的郵箱' 
  6. PASSWORD = '你的密碼' 
  7.  
  8. request = Request(LOGIN_URL, urlencode({  
  9.     'service''reader',  
  10.     'Email': EMAIL,  
  11.     'Passwd': PASSWORD,  
  12.     'source''mobilescroll' 
  13. }))  
  14.  
  15. f = urlopen(request) 

然后會拿到這樣一串字符串,一共3行:

  1. SID=...  
  2. LSID=...  
  3. Auth=... 

這里我們需要SID和Auth,它們應該是不會過期的,除非退出登錄:

  1. lines = f.read().split()  
  2. sid = lines[0]  
  3. auth = lines[2][5:] 

拿到這2個字段后就可以使用Google Reader API了。具體方法就是訪問API地址(見GoogleReaderAPI文檔),然后把SID作為cookie,Auth作為Authorization。

例如獲取訂閱列表:

  1. headers = {'Authorization''GoogleLogin auth=' + auth, 'Cookie': sid}  
  2. request = Request('https://www.google.com/reader/api/0/subscription/list?output=json', headers=headers)  
  3. f = urlopen(request)  
  4. print f.read() 

就會拿到如下的信息:

  1. {"subscriptions":
  2. [{"id":"feed/供稿地址","title":"供稿名","categories":
  3. [{"id":"user/Google Reader用戶ID/label/分類名","label":"分類名"}],
  4. "sortid":"不知道啥玩意","firstitemmsec":"第一個條目的時間戳","htmlUrl":"供稿的網站地址"},...(其他供稿的信息)]} 

不過如果要修改的話(一般是POST請求),還需要一個token參數。這個token與SID和Auth不同,它很容易過期。因此如果失效了,需要再次請求一個。

請求的地址是http[s]://www.google.com/reader/api/0/token,它可以附帶2個可選的GET參數:ck是時間戳,client是客戶端名稱。

  1. request = Request('https://www.google.com/reader/api/0/token', headers=headers)  
  2. f = urlopen(request)  
  3. token = f.read() 

拿到token后就可以進行訂閱等操作了,例如訂閱本站:

  1. request = Request('https://www.google.com/reader/api/0/subscription/quickadd?output=json', urlencode({  
  2.     'quickadd''http://www.ekrvqnd.cn',  
  3.     'T': token  
  4. }), headers=headers)  
  5. f = urlopen(request)  
  6. print f.read() 

會拿到這樣的結果:

  1. {"query":"http://www.keakon.net/feed","numResults":1,"streamId":"feed/http://www.ekrvqnd.cn"

再去看看你的Google Reader,應該就訂閱好本站了。

原文:http://simple-is-better.com/news/565

【編輯推薦】

  1. 分享兩個Python web框架:Django&Tornado
  2. Python高手是如何練成的
  3. Python入門之你必須了解的實用技巧
  4. 如何在NetBeans 7.0安裝Python插件
  5. 使用NetBeans IDE開發Python應用程序詳解
責任編輯:陳貽新 來源: keakon的涂鴉館
相關推薦

2009-01-04 09:16:11

google Read開發APIGoogle API

2009-08-17 08:37:31

2013-06-27 14:12:06

Google Read

2011-11-01 09:14:10

Google ReadGoogle+

2022-03-25 09:21:09

GoogleAndroid操作系統

2013-07-03 13:37:37

Google

2009-07-03 09:12:59

Java JSP

2009-07-29 16:44:45

AndroidSimpleGoogle

2021-04-13 10:32:50

ARVR蘋果

2011-08-19 13:34:33

iPhone應用ABAddressBo

2015-05-04 13:21:56

DartAndroid

2012-07-06 13:16:37

Google Go

2022-07-29 09:25:13

NFT可視化探索投資者

2023-03-03 09:09:55

2011-08-08 15:05:50

iPhone 網站

2013-12-08 20:32:32

WaxLua

2015-04-22 09:36:27

JAVA代碼生成器

2021-03-26 11:02:20

Python自然語言API

2013-04-17 10:06:55

Google GlasMirror API

2021-05-20 09:55:40

ChromeGoogle Read離線閱讀
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜色婷婷 | 久久久精品影院 | 亚洲精品一区二区三区在线 | 亚洲综合五月天婷婷 | 国产精品一区二区三 | 久久av综合 | 91精品国产综合久久久久久 | 日韩视频精品在线 | 精品9999| 中文在线观看视频 | 免费一级欧美在线观看视频 | 亚洲精品久久久9婷婷中文字幕 | 国产精品日日摸夜夜添夜夜av | 亚洲黄色视屏 | 欧美亚洲另类在线 | 在线观看成年人视频 | 九九亚洲 | 妞干网av| 欧美一级二级视频 | 国产免费拔擦拔擦8x高清 | 日韩av一区在线观看 | 日韩中文字幕一区二区三区 | 久久亚| 亚洲v区 | 久久久久国产精品免费免费搜索 | 亚洲视频免费观看 | 久久久99国产精品免费 | 亚洲成人日韩 | 日韩1区 | 91视频一区二区 | 综合欧美亚洲 | 欧美日韩精品一区二区三区蜜桃 | 日韩精品亚洲专区在线观看 | 久久一日本道色综合久久 | 色综合欧美 | 成人精品视频在线 | 羞羞视频免费在线观看 | 欧美一区二区三区在线视频 | 老熟女毛片 | 天堂av中文 | 午夜av在线|