我使用以下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
我做错了什么?
答案 0 :(得分:2)
您似乎缺少身份验证标头:
header = {
'Content-type': 'application/x-www-form-urlencoded',
'Authorization': 'GoogleLogin auth=YOUR_AUTH_TOKEN'
}
答案 1 :(得分:0)
当我将其与我在Firefox中进行的请求(使用liveheaders进行检查)进行比较时,它看起来没问题。我只有额外的参数
async=true
sync=true
s=feed/http://feeds.feedburner.com/37signals/beM
在用户中,在-
的地方有一个很长的身份。
因此,您可以尝试添加两个同步参数,添加s参数,并填写-
的ID。
关于你正在做的urlencoding,这似乎没问题。