1

我正在尝试向reddit_api添加对reddit flair 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 上拥有所有正确的版主权限。我的代码在某个地方出错了吗?

4

1 回答 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.modhashself.user.modhash.

第二个错误是.error.NO_USER.field-name。这只是将user参数更改为name.

于 2011-11-29T11:35:40.670 回答