Tweepy推特字符串

2024-04-20 06:49:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我用tweepy自动推送一个url列表。然而,如果我的名单太长(它可以不同的推特)我是不允许的。不管怎样,当tweepy的内容太长的时候,tweetpy是否可以创建一个tweet线程?我的tweepy代码如下所示:

import tweepy

def get_api(cfg):
  auth = tweepy.OAuthHandler(cfg['consumer_key'], 
cfg['consumer_secret'])
  auth.set_access_token(cfg['access_token'], 
cfg['access_token_secret'])
  return tweepy.API(auth)

def main():
  # Fill in the values noted in previous step here
  cfg = { 
    "consumer_key"        : "VALUE",
    "consumer_secret"     : "VALUE",
    "access_token"        : "VALUE",
    "access_token_secret" : "VALUE" 
    }

  api = get_api(cfg)
  tweet = "Hello, world!"
  status = api.update_status(status=tweet) 
  # Yes, tweet is called 'status' rather confusing

if __name__ == "__main__":
  main()

Tags: keytokenauthapigetsecretaccessconsumer
1条回答
网友
1楼 · 发布于 2024-04-20 06:49:53

你的代码与你要解决的问题无关。不仅main()似乎不接受任何参数(tweet文本?)但你没有表现出你目前是如何处理这件事的。考虑以下代码:

import random

TWEET_MAX_LENGTH = 280

# Sample Tweet Seed
tweet = """I'm using tweepy to automatically tweet a list of URLs. However if my list is too long (it can vary from tweet to tweet) I am not allowed."""

# Creates list of tweets of random length
tweets = []
for _ in range(10):
    tweets.append(tweet * (random.randint(1, 10)))

# Print total initial tweet count and list of lengths for each tweet.
print("Initial Tweet Count:", len(tweets), [len(x) for x in tweets])

# Create a list for formatted tweet texts
to_tweet = []
for tweet in tweets:
    while len(tweet) > TWEET_MAX_LENGTH:

        # Take only first 280 chars
        cut = tweet[:TWEET_MAX_LENGTH]

        # Save as separate tweet to do later
        to_tweet.append(cut)

        # replace the existing 'tweet' variable with remaining chars
        tweet = tweet[TWEET_MAX_LENGTH:]

    # Gets last tweet or those < 280
    to_tweet.append(tweet)

# Print total final tweet count and list of lengths for each tweet
print("Formatted Tweet Count:", len(to_tweet), [len(x) for x in to_tweet])

为了便于解释,尽量把它分开。要点是可以从一个文本列表开始,作为tweet使用。变量TWEET_MAX_LENGTH定义了每个tweet在何处被分割以允许多个tweet。你知道吗

to_tweet列表将包含每个tweet,按照初始列表的顺序,扩展为多个长度为<;=TWEET_MAX_LENGTH的tweet字符串。你知道吗

你可以用这个列表来输入你实际发布的tweepy函数。这种方法是非常随意的,并且不做任何检查来保持分割tweet的序列。取决于你如何实现你的最终tweet功能,这可能是一个问题,但也是一个单独的问题。你知道吗

相关问题 更多 >