首页 > 解决方案 > mentions_timeline() 接受 1 个位置参数,但给出了 2 个

问题描述

我似乎无法让这个工作。我看过很多视频并阅读了文档。我就是不能让这个工作。我正在尝试让我的 Twitter 机器人正常工作

代码

FILE_NAME = 'last_seen.txt'

def read_last_seen(FILE_NAME):
    file_read = open(FILE_NAME, 'r')
    last_seen_id = int(file_read.read().strip())
    file_read.close()
    return last_seen_id

def store_last_seen(FILE_NAME, last_seen_id):
    file_write = open(FILE_NAME, 'w')
    file_write.write(str(last_seen_id))
    file_write.close()
    return

def reply():
    tweets = api.mentions_timeline(read_last_seen(FILE_NAME), tweet_mode='extended')
    for tweet in reversed(tweets):
        if '@MrGoodnightBot' in tweet.full_text.lower():
            print(str(tweet.id) + ' - ' + tweet.full_text)
            api.update_status("@" + tweet.user.screen_name + " testing auto reply/like/retweet", tweet.id)
            api.create_favorite(tweet.id)
            api.retweet(tweet.id)
            api.create_friendship(tweet.user.id)
            store_last_seen(FILE_NAME, tweet.id)

while True:
    reply()
    time.sleep(1)

错误

  File "E:\Twitter Bot\bot.py", line 29, in reply
    tweets = api.mentions_timeline(read_last_seen(FILE_NAME), tweet_mode='extended')
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\tweepy\api.py", line 33, in wrapper
    return method(*args, **kwargs)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\tweepy\api.py", line 46, in wrapper
    return method(*args, **kwargs)
TypeError: mentions_timeline() takes 1 positional argument but 2 were given

标签: pythontweepy

解决方案


缺少一些代码,所以我需要做一个假设,但是从关于 tweepy的文档中,函数签名mentions_timeline是:

API.mentions_timeline(*, count, since_id, max_id, trim_user, include_entities)

*表明符号后面的所有参数必须作为关键字参数传递。例如,这应该正常工作:

tweets = api.mentions_timeline(count=read_last_seen(FILE_NAME), tweet_mode='extended')

签名不表明tweet_mode存在?


推荐阅读