添加对reddit api的天赋支持

时间:2011-11-24 23:52:43

标签: python api reddit

我试图将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拥有所有正确的版主权限。我的代码出错了吗?

1 个答案:

答案 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