Не принимает аргумент ключевого слова «пользователь» в Twitter Tweep API - PullRequest
0 голосов
/ 23 октября 2019

У меня проблема с кодом api.send.direct.message.
Выдает error; peError: send_direct_message() неожиданный аргумент ключевого слова 'user'.
Я пробовал несколько вариантов, включая screen_name = user.screen_name, но не повезло.

import tweepy
import time

# Authenticate to Twitter
auth = tweepy.OAuthHandler("Kr2pjbeG3hDC2", 
"3nunhSaUZ9MeAHpmbEhuEEqSFmj2l2EfaMIzxu9")
auth.set_access_token("107550621-n7OrqgFx", 
"mse3r98sEfziOO95qPCrnD0kUh9lJToxRJ3E0Uzmg")

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

for user in api.followers():
   text="""Hi"""       

   try:
      api.send_direct_message(user=user, text=text) 
      print(user.screen_name)
   except tweepy.TweepError as e:
       print(e.args[0][0]['code'])  # prints 34
      print(e.args[0][0]['message'])
      continue
   except StopIteration:
      break  

1 Ответ

1 голос
/ 23 октября 2019

В соответствии с документацией вы должны указать идентификатор получателя:

API.send_direct_message(recipient_id, text[, quick_reply_type][, attachment_type][, attachment_media_id])

Ваш код должен выглядеть следующим образом:

import tweepy
import time

# Authenticate to Twitter
auth = tweepy.OAuthHandler("Kr2pjbeG3hDC2", 
"3nunhSaUZ9MeAHpmbEhuEEqSFmj2l2EfaMIzxu9")
auth.set_access_token("107550621-n7OrqgFx", 
"mse3r98sEfziOO95qPCrnD0kUh9lJToxRJ3E0Uzmg")

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

for user in api.followers():
   text="""Hi"""       

   try:
      api.send_direct_message(recipient_id=user.id, text=text) 
      print(user.screen_name)
   except tweepy.TweepError as e:
       print(e.args[0][0]['code'])  # prints 34
      print(e.args[0][0]['message'])
      continue
   except StopIteration:
      break  
...