簡體   English   中英

如何使用google reader api將項目標記為已讀(使用python)

[英]How do I mark an item as read with google reader api (using python)

我使用以下python函數將項目標記為在谷歌閱讀器中讀取,但它總是返回錯誤HTTPErrors:HTTP 401:未經授權:

def mark_as_read(SID, entryid):  
    token = get_token(SID)  
    mark_as_read_url = 'http://www.google.com/reader/api/0/edit-tag'  
    header = {'Content-type': 'application/x-www-form-urlencoded'}  
    post_data = urllib.urlencode({ 'i': entryid, 'a': 'user/-/state/com.google/read', 'ac': 'edit', 'T': token })  
    request = urllib2.Request(mark_as_read_url, post_data, header)  
    f = urllib2.urlopen(request)  
    result = f.read()

其他功能正在成功檢索提要和條目,因此它不是基本的,如錯誤的用戶名或密碼。 我已經讀過urlencoding是必需的,所以我已經做到了。 示例entryid如下所示:tag:google.com,2005:reader / item / f66ad0fb64f56a22

我究竟做錯了什么?

您似乎缺少身份驗證標頭:

header = {
    'Content-type': 'application/x-www-form-urlencoded',
    'Authorization': 'GoogleLogin auth=YOUR_AUTH_TOKEN'
}

當我將其與我在Firefox中進行的請求(使用liveheaders進行檢查)進行比較時,它看起來沒問題。 我只有額外的參數

async=true
sync=true
s=feed/http://feeds.feedburner.com/37signals/beM

在用戶中,在 - 的地方-有一個很長的身份。

所以,你可以嘗試添加兩個同步參數,增加s參數,並在為一個id灌裝-

關於你正在做的urlencoding,這似乎沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM