上下文:我最近重新授权了一个具有有效数字的twilio帐户,该帐户已链接到运行简单Python脚本以响应短信的AWS lambda实例。我一年前成功设置了它,它能够响应来自android和Apple手机的短信,但最近的测试表明它可以接收并响应来自android手机(而非Apple手机)的短信。
发生了什么变化:我根据现有代码对Python脚本进行了额外的条件编辑,在aws lambda上重新部署了API,并创建了一个新的twilio编号,并将其与lambda应用程序连接在一起,确保我要发送短信的twilio号码是最新更新的号码。
它在哪里工作并崩溃:我能够从android手机发送短信,并按预期响应。它会在twilio日志中出现,其中包含预期的传入消息和传出消息,但是当我从苹果手机(短信)发送短信时,它指出该消息未传递,并且twilio日志中没有提及接收任何消息文字来自消息。将邮件发送到我在twilio帐户中注册的旧号码时,不会发生这种情况。
已经尝试过:我从中接收文本的号码已获得授权,我重新授权了正在使用的苹果号码。 twilio号码已注册为座机英国号码,我正在从英国电话号码发送消息,此过程适用于Android号码,但不适用于苹果号码。
所需解决方案:AWS lambda / twilio中的方法或代码更改将启用来自苹果手机的短信。
编辑:以下是我的代码的简化变体。此功能可以使用原始号码,但不能再使用。
def lambda_handler(event, context):
if "zero" in event["Body"]:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>zero</Message></Response>'
elif "1" in event["Body"]:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>1</Message></Response>'
elif "2" in event["Body"]:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>2</Message></Response>'
elif "3" in event["Body"]:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>3</Message></Response>'
elif "4" in event["Body"]:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>4</Message></Response>'
else:
return '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'\
'<Response><Message>{}</Message></Response>'.format(event)