Flutter通信服务插件telnyx_flutter的使用

Flutter通信服务插件telnyx_flutter的使用

A Flutter (dart) package for helping developers using the Telnyx API services

特性

  • 使用编程方式发送短信
  • 使用编程方式发送WhatsApp消息

即将推出:

  • 获取与Telnyx账户相关的所有短信
  • 获取从Telnyx账户发送的每条短信的更多详情

开始使用

要使用此插件,请将依赖项添加到您的 pubspec.yaml 文件中。

dependencies:
  flutter:
    sdk: flutter
  telnyx_flutter: ^0.0.5

如何使用

创建一个新的客户端对象

var telnyxFlutter = TelnyxFlutter(
  telnyxNumber : '[YOUR_TELNYX_NUMBER]',  // 例如: +xxxxxxxxxxxx
  authToken : '[YOUR_TELNYX_API_KEY]',    // 例如: KEY****  
  messagingProfileId : '[YOUR_MESSAGING_PROFILE_ID]', // 例如: aaaaaaaa-bbbb-cccc-dddd-111111111111
  whatappUserId: ['WHATSUP_USER_ID']    // (可选)
);

发送短信

telnyxFlutter.sendSMS(
  toNumber : '+xxxxxxxxxxxx', 
  messageBody : 'your message here',
); 

使用Alphanumeric SenderID发送短信

// 例如使用 TELNYX
telnyxFlutter.sendSMS(
  senderId: 'TELNYX'
  toNumber : '+xxxxxxxxxxxx', 
  messageBody : 'your message here',
); 

向个人号码发送WhatsApp短信

telnyxFlutter.sendWhatsApp(
  toNumber : '+xxxxxxxxxxxx', 
  messageBody : 'your WA message here',
);

示例代码

以下是完整的示例代码:

import 'package:telnyx_flutter/telnyx_flutter.dart';

void main() {

  final toNumber = '+972000000000';
  final messageBody = 'Hello from Telnyx';

  var telnyxFlutter = TelnyxFlutter(
      telnyxNumber: '+___________',
      authToken: 'KEY*_*',
      messagingProfileId: '*-*-*-*-*'
  );

  // 发送短信
  telnyxFlutter.sendSMS(
      toNumber: toNumber, messageBody: messageBody).then((value) {
    print(value);
  });

  // 使用Sender ID发送短信
  telnyxFlutter.sendSMSWithSenderID(
      senderId: 'SENDER_ID', toNumber: toNumber, messageBody: messageBody).then((value) {
    print(value);
  });

  // 发送WhatsApp消息
  telnyxFlutter.sendWhatsApp(
      toNumber: toNumber, messageBody: messageBody).then((value) {
    print(value);
  });
}

更多关于Flutter通信服务插件telnyx_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter通信服务插件telnyx_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


telnyx_flutter 是一个用于在 Flutter 应用中集成 Telnyx 通信服务的插件。Telnyx 提供了 VoIP、短信、号码管理等功能,通过 telnyx_flutter 插件,你可以轻松地在 Flutter 应用中实现这些功能。

以下是使用 telnyx_flutter 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 telnyx_flutter 插件的依赖:

dependencies:
  telnyx_flutter: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化 Telnyx 服务

在你的 Flutter 应用中,首先需要初始化 Telnyx 服务。你可以在 main.dart 或其他合适的地方进行初始化。

import 'package:telnyx_flutter/telnyx_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Telnyx
  await TelnyxFlutter.initialize(
    apiKey: 'YOUR_API_KEY',  // 替换为你的 Telnyx API Key
  );

  runApp(MyApp());
}

3. 创建 Telnyx Client

初始化完成后,你可以创建一个 Telnyx Client 来进行通信操作。

TelnyxClient telnyxClient = TelnyxClient();

4. 拨打 VoIP 电话

使用 telnyxClient 可以拨打 VoIP 电话。你需要传入对方的电话号码或 SIP URI。

void makeCall() async {
  try {
    await telnyxClient.makeCall(
      destinationNumber: '1234567890',  // 替换为你要拨打的号码
      callerIdNumber: '0987654321',     // 替换为你的呼叫者 ID
    );
  } catch (e) {
    print('Error making call: $e');
  }
}

5. 发送短信

你也可以使用 telnyxClient 发送短信。

void sendSms() async {
  try {
    await telnyxClient.sendSms(
      destinationNumber: '1234567890',  // 替换为你要发送短信的号码
      message: 'Hello from Telnyx!',    // 短信内容
    );
  } catch (e) {
    print('Error sending SMS: $e');
  }
}

6. 监听事件

你可以监听 Telnyx 的事件,例如来电、短信接收等。

void listenToEvents() {
  telnyxClient.onEvent.listen((event) {
    print('Telnyx Event: $event');
    // 处理事件
  });
}

7. 处理权限

确保在 Android 和 iOS 上处理必要的权限,例如麦克风、电话等。

Android

AndroidManifest.xml 中添加以下权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />

iOS

Info.plist 中添加以下权限:

<key>NSMicrophoneUsageDescription</key>
<string>We need access to the microphone to make calls.</string>

8. 销毁资源

在应用退出时,确保销毁 Telnyx Client 以释放资源。

void dispose() {
  telnyxClient.dispose();
}

9. 处理错误

在使用 telnyx_flutter 插件时,可能会遇到各种错误,例如网络错误、权限错误等。确保在代码中处理这些错误,并提供适当的用户反馈。

示例代码

以下是一个完整的示例,展示如何在 Flutter 应用中使用 telnyx_flutter 插件进行 VoIP 通话和发送短信。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Telnyx
  await TelnyxFlutter.initialize(
    apiKey: 'YOUR_API_KEY',  // 替换为你的 Telnyx API Key
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TelnyxExample(),
    );
  }
}

class TelnyxExample extends StatefulWidget {
  [@override](/user/override)
  _TelnyxExampleState createState() => _TelnyxExampleState();
}

class _TelnyxExampleState extends State<TelnyxExample> {
  TelnyxClient telnyxClient = TelnyxClient();

  [@override](/user/override)
  void initState() {
    super.initState();
    listenToEvents();
  }

  void listenToEvents() {
    telnyxClient.onEvent.listen((event) {
      print('Telnyx Event: $event');
      // 处理事件
    });
  }

  void makeCall() async {
    try {
      await telnyxClient.makeCall(
        destinationNumber: '1234567890',  // 替换为你要拨打的号码
        callerIdNumber: '0987654321',     // 替换为你的呼叫者 ID
      );
    } catch (e) {
      print('Error making call: $e');
    }
  }

  void sendSms() async {
    try {
      await telnyxClient.sendSms(
        destinationNumber: '1234567890',  // 替换为你要发送短信的号码
        message: 'Hello from Telnyx!',    // 短信内容
      );
    } catch (e) {
      print('Error sending SMS: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Telnyx Flutter Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: makeCall,
              child: Text('Make Call'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: sendSms,
              child: Text('Send SMS'),
            ),
          ],
        ),
      ),
    );
  }

  [@override](/user/override)
  void dispose() {
    telnyxClient.dispose();
    super.dispose();
  }
}
回到顶部