当用户发布 Tweepy 推文时,Twilio SMS 消息未发送
Twilio SMS message not sending when a user tweets Tweepy
我正在尝试在某个用户发推文时从一个 Twilio phone 号码向另一个号码发送短信。这是代码:
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 SMS 消息日志并且两个 phone 号码之间没有显示任何消息。我不知道为什么会这样。有任何想法吗?谢谢
这里是 Twilio 开发人员布道者。
经过长时间的交谈,事实证明这不是 Twitter 流 API 或 Twilio 的问题。相反,工作进程在 Heroku 上没有 运行ning。
当 运行在 Heroku 上运行 worker 时,您需要确保 worker 进程由 Heroku 启动。默认情况下,Heroku 会启动一个“web”进程,但你需要告诉它专门启动其他进程。
查看是否有进程运行ning,运行:
heroku ps
并且如果您在 Procfile
中定义了一个名为“worker”的进程,您可以使用以下命令确保它 运行 在一个 dyno 中运行:
heroku ps:scale worker=1
您可以阅读有关 scaling dynos in the Heroku documentation 的更多信息。
我正在尝试在某个用户发推文时从一个 Twilio phone 号码向另一个号码发送短信。这是代码:
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 SMS 消息日志并且两个 phone 号码之间没有显示任何消息。我不知道为什么会这样。有任何想法吗?谢谢
这里是 Twilio 开发人员布道者。
经过长时间的交谈,事实证明这不是 Twitter 流 API 或 Twilio 的问题。相反,工作进程在 Heroku 上没有 运行ning。
当 运行在 Heroku 上运行 worker 时,您需要确保 worker 进程由 Heroku 启动。默认情况下,Heroku 会启动一个“web”进程,但你需要告诉它专门启动其他进程。
查看是否有进程运行ning,运行:
heroku ps
并且如果您在 Procfile
中定义了一个名为“worker”的进程,您可以使用以下命令确保它 运行 在一个 dyno 中运行:
heroku ps:scale worker=1
您可以阅读有关 scaling dynos in the Heroku documentation 的更多信息。