无法使用PRAW API提交帖子

问题描述 投票:0回答:1

我有这个代码:

import praw

print('starting')
reddit = praw.Reddit(client_id='****',
                     client_secret='********',
                     user_agent='****',
                     username = '****',
                     password = '****')

r = reddit.post("/api/submit",data={'title':'my firts title','text':'the text of my post','sr':'r/test'})

print("finishing")

但它返回错误:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-19-7e66ffa81635> in <module>
      9                      password = '*****')
     10 
---> 11 r = reddit.post("/api/submit",data={'title':'my firts title','text':'the text of my post','sr':'r/test'})
     12 
     13 print("finishing")

~\AppData\Local\Continuum\anaconda3\lib\site-packages\praw\reddit.py in post(self, path, data, files, params)
    481         data = self.request('POST', path, data=data or {}, files=files,
    482                             params=params)
--> 483         return self._objector.objectify(data)
    484 
    485     def put(self, path, data=None):

~\AppData\Local\Continuum\anaconda3\lib\site-packages\praw\objector.py in objectify(self, data)
    148             if len(errors) == 1:
    149                 raise APIException(*errors[0])
--> 150             assert not errors
    151 
    152         elif isinstance(data, dict):

AssertionError: 

并且在某些情况下相同的代码返回:

---------------------------------------------------------------------------
APIException                              Traceback (most recent call last)
<ipython-input-27-b62f9f5f585d> in <module>
      9                      password = '****')
     10 
---> 11 r = reddit.post("/api/submit",data={'title':'my firts title','text':'the text of my post','sr':'r/test'})
     12 
     13 print("finishing")

~\AppData\Local\Continuum\anaconda3\lib\site-packages\praw\reddit.py in post(self, path, data, files, params)
    481         data = self.request('POST', path, data=data or {}, files=files,
    482                             params=params)
--> 483         return self._objector.objectify(data)
    484 
    485     def put(self, path, data=None):

~\AppData\Local\Continuum\anaconda3\lib\site-packages\praw\objector.py in objectify(self, data)
    147             errors = data['json']['errors']
    148             if len(errors) == 1:
--> 149                 raise APIException(*errors[0])
    150             assert not errors
    151 

APIException: INVALID_OPTION: 'opci\xf3n inv\xe1lida' on field 'sr'

说实话,我不知道我做错了什么。我想有一个更好的方法来简单地在reddit中提交帖子,但是文档并没有那么有用

python-3.x reddit praw
1个回答
2
投票

你应该做:

my_post = reddit.subreddit('subreddit').submit('My Title', selftext='Stuff you want to put in the textbox')

请注意,subreddit不应包含r /。

按照:https://praw.readthedocs.io/en/latest/code_overview/models/subreddit.html#praw.models.Subreddit.submit

© www.soinside.com 2019 - 2024. All rights reserved.