为reddit_api添加flair支持
我正在尝试为reddit的flair API添加支持到reddit_api中,但我似乎没有进展。
我在urls.py
文件中添加了以下内容:
("api/", {
...
"flair": "flair/"
}),
在reddit.py
文件中,我也添加了以下内容:
@require_login
def set_flair(self, subreddit, user, text='', css_class=''):
"""Set flair of user in given subreddit"""
url = urls["flair"]
params = {'r': subreddit,
'user': user,
'text': text,
'css_class': css_class,
'uh': self.modhash}
return self._request_json(url, params)
但是我的代码似乎没有任何明显的效果:
import reddit
r = reddit.Reddit(user_agent='User rating modifier')
r.login(user='xxxx', password='xxxx')
r.set_flair('subreddit', 'username', 'textflair', 'cssclass')
我没有收到错误提示,但用户的flair没有在reddit上添加。reddit_api
的其他功能对我来说都能正常工作,而且我在reddit上拥有所有正确的版主权限。我是不是在代码的某个地方出错了?
1 个回答
2
这里有一个可以用的 set_flair
函数:
@require_login
def set_flair(self, subreddit, user, text='', css_class=''):
"""Set flair of user in given subreddit"""
url = urls["flair"]
params = {'r': subreddit,
'name': user,
'text': text,
'css_class': css_class,
'uh': self.user.modhash}
return self._request_json(url, params)
我运行你的代码后遇到的第一个错误是 .error.USER_REQUIRED
(“请登录后再进行操作”)。API 明确说明 需要用户的 modhash。所以我把 self.modhash
改成了 self.user.modhash
。
第二个错误是 .error.NO_USER.field-name
。这只是需要把 user
参数改成 name
的问题。