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

Appwrite集成TextMagic短信验证失败,报strlen类型错误

问题分析与解决方案

错误根源

从日志的任务数据可见"project":null,结合栈追踪中的strlen(): Argument #1 ($str) must be of type string, array given,核心问题是短信任务未正确关联Appwrite项目,导致TextMagic适配器构造请求时出现参数类型错误。虽用户能正常创建,但消息任务缺失项目上下文,引发参数处理失败。

修复步骤

  • 确认客户端项目ID配置
    检查_init()方法,确保Appwrite客户端正确设置项目ID,这是短信任务关联项目的核心:
    void _init() {
      account = Account(Client()
        .setEndpoint('https://你的Appwrite端点/v1')
        .setProject('你的项目ID') // 必须填写控制台获取的项目ID
        .setSelfSigned(status: true)); // 仅本地开发环境使用,生产环境移除
    }
    
  • 升级Flutter SDK版本
    旧版Appwrite Flutter SDK可能存在createPhoneSession方法未正确传递项目上下文的bug,建议升级到最新稳定版:
    flutter pub upgrade appwrite
    
  • 验证服务端版本
    若客户端配置无误,尝试将Appwrite服务器升级到最新版本,部分旧版本存在消息任务处理的逻辑漏洞。
  • 核对.env配置
    确保服务端.env文件中除TEXTMAGIC_USERNAME和TEXTMAGIC_API_KEY外,APPWRITE_PROJECT_ID也已正确配置(客户端项目ID优先级更高,双重验证避免遗漏)。

额外排查

若修复后仍报错,可在createPhoneSession调用前打印客户端项目ID配置,确认是否正确传递:

print('当前客户端项目ID: ${account.client?.project}');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:06:38