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

Flutter能否向Line Notify或Line Bot发送消息?

实现方案总览

整个流程分为2个可选路径:走Line Notify 或者 走Line Messaging API(Line Bot),两种方案都是在Flutter侧触发HTTP请求调用Line的开放接口完成消息推送。


方案1:使用Line Notify实现(更简单,适合单方向推送消息)

Line Notify是官方提供的轻量化推送工具,不需要复杂的Bot配置,只需要申请令牌即可调用。

前置准备

  • 申请Line Notify的个人令牌,选择要推送的目标会话(个人/群组),保存生成的令牌值

Flutter侧实现步骤

  1. 先在pubspec.yaml中添加网络请求依赖:
dependencies:
  flutter:
    sdk: flutter
  http: ^1.1.0 # 替换为当前最新稳定版即可
  1. 封装发送消息的方法:
import 'dart:convert';
import 'package:http/http.dart' as http;

Future<void> sendLineNotifyMessage(String message, String token) async {
  final url = Uri.parse('https://notify-api.line.me/api/notify');
  final response = await http.post(
    url,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Bearer $token',
    },
    body: {
      'message': message,
    },
  );
  if (response.statusCode == 200) {
    // 此处写推送成功的后续逻辑
  } else {
    // 此处写推送失败的后续逻辑,可打印response.body排查错误
  }
}
  1. 给按钮绑定点击事件:
ElevatedButton(
  onPressed: () {
    // 替换为自己的Line Notify令牌,生产环境不要硬编码到代码中
    const lineToken = '你的Line Notify令牌';
    sendLineNotifyMessage('这是Flutter应用发送的测试消息', lineToken);
  },
  child: const Text('发送消息到Line'),
)

注意:生产环境不要把令牌硬编码在客户端代码里,建议走自己的后端服务转发请求,避免令牌泄露被滥用。
如果要推送到群组,需要先把Line Notify官方账号加入对应群组。


方案2:使用Line Bot(Line Messaging API)实现(适合双向交互场景)

如果需要后续实现机器人回复、用户主动触发交互等功能,用Line Bot方案更合适。

前置准备

  • 在Line Developer控制台创建Provider和Messaging API通道,获取通道访问令牌(Channel Access Token)
  • 添加目标用户为Line Bot的好友,或者把Bot加入到目标群组
  • 获取目标用户/群组的ID(userId/groupId)

Flutter侧实现步骤

  1. 同样需要先添加http依赖,和方案1一致
  2. 封装发送消息的方法:
Future<void> sendLineBotMessage(String message, String channelToken, String targetId) async {
  final url = Uri.parse('https://api.line.me/v2/bot/message/push');
  final response = await http.post(
    url,
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer $channelToken',
    },
    body: jsonEncode({
      'to': targetId,
      'messages': [
        {
          'type': 'text',
          'text': message,
        }
      ]
    }),
  );
  if (response.statusCode == 200) {
    // 推送成功逻辑
  } else {
    // 推送失败逻辑,可打印返回值排查错误
  }
}
  1. 按钮绑定事件逻辑和方案1类似,替换为调用sendLineBotMessage方法即可,传入对应的通道令牌和目标ID。

常见问题排查

  • 推送失败先检查令牌、ID是否正确,对应权限有没有开启
  • Line Bot如果推送到群组,需要在开发者控制台开启群组权限,且Bot已经加入对应群组
  • 客户端请求如果出现跨域问题,需要走自己的后端服务做一层请求转发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 07:24:03