You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Twilio返回的SID结果更新Google Sheet?

解决Google Sheet中更新Twilio短信SID到D列的问题

你已经实现了短信发送功能,现在只需要在循环里加入更新Sheet的逻辑即可,核心是找到对应行的D列单元格,把Twilio返回的message.sid写入进去。

关键修改点:

  • 循环中当前条目对应的行号是i+2(因为你的数据从第2行开始,循环索引i从0起步)
  • 可以用gspread的update_cell方法直接指定行和列(D列是第4列),或者用A1格式的单元格范围来更新
  • 建议加入空值判断,避免因Sheet中存在空行导致报错

修改后的完整代码:

import gspread
from twilio.rest import Client

# 初始化Twilio客户端
account = "xxxx"
token = "xxxx"
client = Client(account, token)

# 连接Google Sheet
gc = gspread.service_account()
sh = gc.open("Twilio")
worksheet = sh.worksheet("SMS")

# 获取姓名和手机号数据(从第2行开始)
names = worksheet.batch_get(('a2:a',))[0]
numbers = worksheet.batch_get(('c2:c',))[0]

# 循环发送短信并更新SID到D列
for i in range(len(names)):
    # 跳过空行(如果姓名或手机号为空)
    if not names[i] or not numbers[i]:
        continue
    
    # 发送短信
    message = client.messages.create(
        from_="+18447011479",
        to=numbers[i][0],  # 注意取列表中的实际值
        body=f"Hello {names[i][0]}, this is a test message from Twilio.",
        media_url="https://raw.githubusercontent.com/dianephan/flask_upload_photos/main/UPLOADS/DRAW_THE_OWL_MEME.png"
    )
    
    # 更新对应行的D列(第4列)
    # 方法1:用行号和列号
    worksheet.update_cell(i+2, 4, message.sid)
    
    # 方法2:用A1格式的单元格地址(二选一即可)
    # worksheet.update(f"D{i+2}", [[message.sid]])

代码说明:

  1. 空值判断:加入if not names[i] or not numbers[i]: continue,避免处理Sheet中的空行导致发送失败或更新错误
  2. 单元格定位:i+2对应数据所在的行(比如i=0对应第2行,也就是A2/C2的位置),D列是第4列,所以update_cell(i+2, 4, message.sid)就能精准写入到对应位置
  3. 两种更新方式:update_cell更直观,而update方法适合批量更新,这里单个单元格用两种方式都可以

内容的提问来源于stack exchange,提问作者montytx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:35:28