Flutter命令行工具插件at_cli的使用

Flutter命令行工具插件at_cli的使用

at_cli

A command line tool to execute verbs on at platform.


构建

假设 - 您已经安装了Dart SDK。版本应为 >= 2.12.0 并且 < 3.0.0。

首先获取依赖项(如 pubspec.yaml 中定义的):

dart pub get

现在可以在 Dart 虚拟机中运行命令:

dart run bin/main.dart

此时会打印出一些使用说明:

Usage: 
-a, --auth           如果命令需要服务器认证,则设置此标志
-m, --mode           如果需要认证,则选择认证模式 [cram, pkam]
-f, --authKeyFile    cram/pkam 文件路径
    --atsign         当前 Atsign
-c, --command        要执行的 at 命令
-v, --verb           要执行的动词
-p, --public         如果密钥具有公共访问权限,则设为 true
-k, --key            要更新的键
    --value          键的值
-w, --shared_with    与谁共享密钥的 atsign
-b, --shared_by      谁共享了该密钥
-r, --regex          扫描的正则表达式

如果您经常使用 atcli,那么将其创建为二进制文件并复制到 PATH 中是有意义的,例如:

dart compile exe bin/main.dart -o ~/atcli
sudo cp ~/atcli /usr/local/bin/

验证 config.yaml 文件中的以下信息。请提供有效值:

root_server:
  # Root server 运行的端口。
  port: 64
  host: 'root.atsign.org'
  
auth:
  required: true # 动词是否需要认证
  mode: cram     # 认证模式 (cram 或 pkam)
  key_file_location: 'bin/[@alice](/user/alice)' # 包含 PKAM/CRAM 密钥的文件路径 
  at_sign: '[@alice](/user/alice)'

也可以从命令行提供上述认证相关信息。

以下是执行动词的一些示例。


scan

无认证

dart run bin/main.dart -v scan

此命令将返回在 config.yaml 中提供的 atsign 的所有公共可用密钥。

或者可以从命令行提供 atSign:

dart run bin/main.dart -v scan -a [@alice](/user/alice)

样本输出

[firstname[@alice](/user/alice), location[@alice](/user/alice), signing_publickey@alice]

带认证

dart run bin/main.dart -v scan -a true

dart run bin/main.dart -v scan -a true -a [@alice](/user/alice)

此命令将在认证成功后返回 @alice 的所有密钥(使用 config.yaml 中提供的 cram/pkam)。

样本输出

[[@alice](/user/alice):signing_privatekey[@alice](/user/alice), public:firstname[@alice](/user/alice), public:location[@alice](/user/alice), public:signing_publickey@alice]

注意:可以使用 -m/--mode 选项提供认证模式,使用 -f/--authKeyFile 提供 cram/pkam 文件路径。


update

update 动词用于更新/创建带值的键。update 动词需要认证。

创建一个私有于 alice 的键 ‘firstname’,其值为 ‘alice’

dart run bin/main.dart -v update -k firstname --value alice -p false -a true

样本输出

true

创建一个公开可用的键 ‘lastname’,其值为 ‘alice’

dart run bin/main.dart -v update -k lastname --value alice -p true -a true

样本输出

true

lookup

lookup 动词用于查找特定 atSign 的某个键。lookup 动词需要认证。

查找 bob 的电子邮件

dart run bin/main.dart -v lookup -k email --atsign @bob -a true

样本输出

bob@at.com

也可以直接运行命令来查找 bob 的电子邮件:

dart run bin/main.dart -c lookup:email@bob -a true

样本输出

bob@at.com

llookup

llookup 动词可用于本地查找存储在二级服务器上的键。执行 llookup 需要认证。

查找 alice 的 firstname

dart run bin/main.dart -v llookup -k firstname --atsign [@alice](/user/alice) -a true

样本输出

alice

或者可以直接运行命令:

dart run bin/main.dart -c llookup:firstname[@alice](/user/alice) -a true

样本输出

alice

plookup

plookup 动词提供代理的公共查找,适用于可能位于防火墙后的解析器。这将允许解析器联系 atServer,并让 atServer 查找公有的 atSign 处理信息。

查找 public:location@alice 的值

dart run bin/main.dart -v plookup -k location --atsign [@alice](/user/alice) -a true

样本输出

india

也可以直接运行命令:

dart run bin/main.dart -c plookup:location[@alice](/user/alice) -a true

样本输出

india
1 回复

更多关于Flutter命令行工具插件at_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


at_cli 是一个用于与 @platform 交互的命令行工具插件,适用于 Flutter 应用程序。@platform 是一个去中心化的通信和存储平台,允许开发者构建隐私优先的应用程序。

安装 at_cli

首先,你需要在你的 Flutter 项目中安装 at_cli 插件。你可以通过以下步骤来安装:

  1. pubspec.yaml 中添加依赖

    打开你的 pubspec.yaml 文件,并在 dependencies 部分添加 at_cli

    dependencies:
      flutter:
        sdk: flutter
      at_cli: ^1.0.0  # 使用最新版本
  2. 安装依赖

    在终端中运行以下命令来安装依赖:

    flutter pub get

使用 at_cli

安装完成后,你可以在你的 Flutter 项目中使用 at_cli 来与 @platform 进行交互。以下是一些常见的用法示例:

1. 初始化 at_cli

在使用 at_cli 之前,你需要初始化它。通常,你可以在 main.dart 文件中进行初始化:

import 'package:at_cli/at_cli.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 at_cli
  await AtCli.init();
  
  runApp(MyApp());
}

2. 连接到 @platform

你可以使用 at_cli 连接到 @platform

import 'package:at_cli/at_cli.dart';

Future<void> connectToPlatform() async {
  var client = await AtCli.connect();
  print('Connected to @platform');
}

3. 发送和接收消息

你可以使用 at_cli 发送和接收消息:

import 'package:at_cli/at_cli.dart';

Future<void> sendMessage() async {
  var client = await AtCli.connect();
  
  // 发送消息
  await client.sendMessage('@alice', 'Hello from @bob!');
  
  // 接收消息
  var messages = await client.getMessages();
  print('Received messages: $messages');
}

4. 数据存储和检索

@platform 允许你存储和检索数据。你可以使用 at_cli 来执行这些操作:

import 'package:at_cli/at_cli.dart';

Future<void> storeAndRetrieveData() async {
  var client = await AtCli.connect();
  
  // 存储数据
  await client.put('key', 'value');
  
  // 检索数据
  var value = await client.get('key');
  print('Retrieved value: $value');
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!