Flutter集成Blip SDK插件blip_sdk的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter集成Blip SDK插件blip_sdk的使用

简单BLiP SDK用于Flutter。

pub version Test Status

了解更多关于BLiP 这里

安装

Flutter

要从pub.dev注册表安装blip_sdk包以访问BLiP服务器,请执行以下命令:

flutter pub add blip_sdk

实例化BlipSdk客户端

要连接到BLiP聊天机器人,您需要一个标识符和一个访问密钥。获取它们的方法如下:

  1. 前往Painel BLiP并登录;
  2. 点击创建聊天机器人
  3. 选择从头开始创建模型选项;
  4. 转到设置并点击连接信息
  5. 获取您的机器人的标识符访问密钥

为了实例化客户端,您可以使用ClientBuilder类,并提供标识符访问密钥

import 'package:blip_sdk/blip_sdk.dart';

// 创建一个客户端实例,传递您的聊天机器人的标识符和访问密钥
final client = ClientBuilder(transport: WebSocketTransport())
    .withIdentifier(IDENTIFIER)
    .withAccessKey(ACCESS_KEY)
    .build();

// 异步连接到服务器
// 连接将通过8081端口上的websocket进行
final Session session = await client.connect().catch((err) { /* 连接失败 */ });
/// session.state...

每个client实例代表一个服务器连接,可以重复使用。要关闭连接:

final Session session = client.close().catch(function(err) { /* 断开连接失败 */ });

接收消息

所有发送到聊天机器人的消息都会被重定向到已注册的消息和通知接收器。您可以定义过滤器来指定哪些信封将由每个接收器处理。 以下是添加一个简单的消息接收器的示例:

final onMessageListener = StreamController<Message>();

client.addMessageListener(onMessageListener);

onMessageListener.stream.listen((Message message) {
  // 处理收到的消息
});

接下来的示例展示了如何添加一个具有received事件类型过滤器的通知监听器:

final onNotificationListener = StreamController<Notification>();

client.addNotificationListener(onNotificationListener, filters: (Notification notification) => notification.event == NotificationEvent.received);

onNotificationListener.stream.listen((Notification message) {
  // 处理收到的通知
});

还可以使用自定义函数作为过滤器:

final onMessageListener = StreamController<Message>();

client.addMessageListener(onMessageListener, filters: (Message message) => message.from == Node.parse('553199990000@0mn.io'));

onMessageListener.stream.listen((Message message) {
  // 处理收到的消息
});

每个监听器的注册都会返回一个handler,可用于取消注册:

final removeListener = client.addMessageReceiver(stream, filters: (Message message) => message.type == 'application/json');
// ...
removeListener();

发送消息

只有在会话建立后才能发送通知和消息。

以下是连接建立后发送消息的示例:

final Session session = await client.connect();

final msg = Message(type: 'text/plain', content: 'Hello, world', to: Node.parse('553199990000@0mn.io'));
client.sendMessage(msg);

以下是连接建立后发送通知的示例:

final Session session = await client.connect();

// 发送一个"received"通知
final notification = Notification(id: 'ef16284d-09b2-4d91-8220-74008f3a5788', to: Node.parse('553199990000@0mn.io'), event: NotificationEvent.received);
client.sendNotification(notification);

更多关于Flutter集成Blip SDK插件blip_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成Blip SDK插件blip_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成并使用Blip SDK插件(假设插件名为blip_sdk),你可以按照以下步骤进行。这里将提供一个基本的代码案例来展示如何集成和使用这个插件。

步骤 1: 添加依赖

首先,在你的pubspec.yaml文件中添加blip_sdk插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  blip_sdk: ^latest_version  # 请替换为实际最新版本号

然后运行flutter pub get来安装依赖。

步骤 2: 导入插件

在你的Dart文件中导入blip_sdk插件。

import 'package:blip_sdk/blip_sdk.dart';

步骤 3: 初始化Blip SDK

通常,你需要在使用SDK之前进行初始化。以下是一个基本的初始化示例:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化Blip SDK
  await BlipSdk.initialize(
    'your_api_key',  // 替换为你的API密钥
    'your_api_secret',  // 替换为你的API密钥秘密
    region: 'your_region',  // 替换为你的服务区域,例如 'us' 或 'eu'
  );

  runApp(MyApp());
}

步骤 4: 使用Blip SDK功能

一旦初始化完成,你就可以开始使用Blip SDK提供的各种功能了。以下是一个简单的发送消息的示例:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Blip SDK Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              try {
                // 发送消息
                var response = await BlipSdk.sendMessage(
                  to: 'recipient_id',  // 替换为接收者的ID
                  message: 'Hello, this is a test message!',
                );
                print('Message sent successfully: ${response.data}');
              } catch (e) {
                print('Error sending message: $e');
              }
            },
            child: Text('Send Message'),
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 错误处理:在实际应用中,你应该添加更全面的错误处理逻辑。
  2. API密钥和秘密:确保你的API密钥和秘密安全存储,不要硬编码在客户端代码中。
  3. 权限管理:根据Blip SDK的文档,确保你的应用有必要的权限来访问和使用SDK功能。
  4. 版本兼容性:检查blip_sdk插件的版本是否与你的Flutter SDK版本兼容。

完整示例

将上述步骤整合到一个完整的示例中:

import 'package:flutter/material.dart';
import 'package:blip_sdk/blip_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await BlipSdk.initialize(
    'your_api_key',
    'your_api_secret',
    region: 'your_region',
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Blip SDK Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              try {
                var response = await BlipSdk.sendMessage(
                  to: 'recipient_id',
                  message: 'Hello, this is a test message!',
                );
                print('Message sent successfully: ${response.data}');
              } catch (e) {
                print('Error sending message: $e');
              }
            },
            child: Text('Send Message'),
          ),
        ),
      ),
    );
  }
}

请确保替换示例代码中的your_api_keyyour_api_secretyour_regionrecipient_id为实际的值。

这个示例展示了如何在Flutter应用中集成和使用Blip SDK插件发送消息。根据Blip SDK的文档,你可以进一步探索和使用更多高级功能。

回到顶部