当用户推特Tweepy时未发送Twilio SMS消息

2024-04-24 07:08:02 发布

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

每当某个用户发推特时,我会尝试从一个Twilio电话号码向另一个Twilio电话号码发送短信。代码如下:

import tweepy
from twilio.rest import Client

consumer_key = CONSUMER_KEY
consumer_secret = CONSUMER_SECRET
access_token = ACCESS_TOKEN
access_token_secret = ACCESS_TOKEN_SECRET

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        if status.user.id_str == "14173315":
            message = client.messages \
                .create(
                    body="Success!",
                    from_=TWILIO_PHONE_NUMBER_1,
                    to=TWILIO_PHONE_NUMBER_2
                )

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(follow=["14173315"])

这是在Heroku worker dyno上托管的,因此当应用程序处于活动状态时,Tweepy侦听器总是在侦听Twitter ID为14173315的用户的推文。但是,只要Twitter ID为14173315的用户发了推特,就不会发送短信。我知道这一点,因为我检查了Twilio短信日志,两个电话号码之间没有显示任何消息。我不知道为什么会这样。有什么想法吗?谢谢


1条回答
网友
1楼 · 发布于 2024-04-24 07:08:02

这里是Twilio开发者福音传道者

经过长时间的交谈,Twitter流媒体API或Twilio都没有发现这个问题。相反,工作进程没有在Heroku上运行

在Heroku上运行辅助进程时,需要确保辅助进程由Heroku启动。默认情况下,Heroku将启动一个“web”进程,但您需要告诉它具体启动其他进程

要检查是否有任何进程正在运行,请运行:

heroku ps

如果在Procfile中定义了一个名为“worker”的进程,则可以使用以下命令确保它在一个动态中运行:

heroku ps:scale worker=1

您可以阅读有关scaling dynos in the Heroku documentation的更多信息

相关问题 更多 >