Я пытаюсь добавить поддержку 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. Я где-то ошибся с моим кодом?
Вот работающая функция 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
.