我试图将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')
我没有收到错误,但用户才能没有添加到reddit上。 reddit_api
的其他功能对我来说非常合适,而且我对reddit拥有所有正确的版主权限。我的代码出错了吗?
答案 0 :(得分: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
(“请登录以执行此操作”)。需要用户modhash的API specifically states。所以我已将self.modhash
更改为self.user.modhash
。
第二个错误是.error.NO_USER.field-name
。这只是将user
参数更改为name
。