微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Twilio - 快速问题无法更新记录

如何解决Twilio - 快速问题无法更新记录

希望你这些天做对了。

总结一下我的问题,我认为这不起作用,因为我使用的是免费的 Twilio 帐户而不是付费帐户。但这只是我的初学者理论。现在,问题:

我尝试了一个官方的 Twilio 教程(https://www.twilio.com/blog/automating-ngrok-python-twilio-applications-pyngrok,我分享链接,以防有人觉得有趣或需要它),它允许我们通过使用客户端 (twilio) 和自动配置 SMS webhook (sms_url) pyngrok (ngrok)。

def start_ngrok():
   from twilio.rest import Client
   from pyngrok import ngrok

   url = ngrok.connect(5000)
   print(' * Tunnel URL:',url)
   client = Client()
   client.incoming_phone_numbers.list(
       phone_number=os.environ.get('TWILIO_PHONE_NUMBER'))[0].update(
           sms_url=url + '/bot')

我无法解释过去 4 天我尝试过的所有事情,但都没有成功。我不断收到同样的错误

   client.incoming_phone_numbers.list(phone_number=os.environ.get('TWILIO_PHONE_NUMBER'))[0].update(sms_url=url + '/bot')
IndexError: list index out of range

列表中的某些内容不起作用,尽管环境变量工作正常,但它还是空的。我将只使用一个电话号码,因此实际上不需要列表,所以我开始更改该行以避免出现不同的错误,结果是这样的:

def start_ngrok():
   from twilio.rest import Client
   from pyngrok import ngrok

   url = ngrok.connect(5000)
   print(' * Tunnel URL:',url)
   client = Client()
   client.incoming_phone_numbers("my_number").update(sms_url=str(url) + '/bot')

然后我得到了我自己无法解决的最终错误

 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/twilio/rest/api/v2010/account/incoming_phone_number/__init__.py",line 442,in update
   payload = self._version.update(method='POST',uri=self._uri,data=data,)
 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/twilio/base/version.py",line 106,in update
   raise self.exception(method,uri,response,'Unable to update record')
twilio.base.exceptions.TwilioRestException: 
HTTP Error Your request was:

POST /Accounts/my_account_SID/IncomingPhoneNumbers/+my_number.json

Twilio returned the following information:

Unable to update record: The requested resource /2010-04-01/Accounts/my_account_SID/IncomingPhoneNumbers/+my_number.json was not found

More information may be available here:

https://www.twilio.com/docs/errors/20404

我尝试了所有不同的电话号码组合/格式:没有任何效果

感谢您花时间阅读所有内容

解决方法

看起来自从写博客后发生了一些变化或有错误。

尝试以下操作:

  • 唯一的区别是将 .public_url 添加到 url 对象。还允许 GET 到 /bot 进行测试。
from dotenv import load_dotenv
from flask import Flask,request
from twilio.twiml.messaging_response import MessagingResponse

load_dotenv()
app = Flask(__name__)


@app.route('/bot',methods=['POST','GET'])
def bot():
    user = request.values.get('From','')
    resp = MessagingResponse()
    resp.message(f'Hello,{user},thank you for your message!')
    return str(resp)


def start_ngrok():
    from twilio.rest import Client
    from pyngrok import ngrok

    url = ngrok.connect(5000)
    print('This is',url)
    print(' * Tunnel URL:',url)
    client = Client()
    client.incoming_phone_numbers.list(
    phone_number=os.environ.get('TWILIO_PHONE_NUMBER'))[0].update(
        sms_url=url.public_url + '/bot')


if __name__ == '__main__':
    if os.environ.get('WERKZEUG_RUN_MAIN') != 'true':
        start_ngrok()
    app.run(debug=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?