使用 Raku 轻松活泼地写饭否机器人
安装 Raku
Raku 是一门很有趣的语言。
目前支持 Windows, macOS, Linux 主流操作系统, 首先去官网下载对应的安装包, 然后安装。安装完成后在终端/命令行提示符中输入
raku -v
它会打印出 Raku 的版本信息:
This is Rakudo Star version 2018.04.1 built on MoarVM version 2018.04.1
implementing Raku.c.
Rakudo Star 自带了模块管理工具 Zef, 你可以使用 zef --help
查看 zef 的帮助。如果提示 command not found 请检查是否设置好了 PATH
路径。我们会用 Zef 来安装饭否客户端模块。
Raku 入门
在开始写机器人之前, 需要先了解一点 Raku 的基础语法。
Raku 入门是 Raku 入门的简明教程, 涵盖了写机器人所需要的基础知识。
想了解更多, 请查看官方文档, 或者在 stackoverflow 上提问。
创建应用
首先需要创建一个新的应用, 去饭否开放平台申请一个饭否应用。在创建应用列表下面可以查看你创建的所有应用, 如果是第一次创建应用, 那么点击创建新应用
按钮:
在跳转后的新建一个应用页面下, 标红星 *
的是必填项:
- 应用名称, 给机器人起一个好听的酷酷的名字。
- 应用类型, 选择机器人应用。
- 主页, 点击我的主页, 复制地址栏中的链接, 就是你的主页。
- 描述, 说明你这个应用是做什么用途的。
创建完成后会显示如下信息:
条目 | 值 |
---|---|
Consumer key | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Consumer secret | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Request token URL | https://fanfou.com/oauth/request_token |
Access token URL | https://fanfou.com/oauth/access_token |
Authorize URL | https://fanfou.com/oauth/authorize |
注意不要把你的 Consumer key 和 Consumer secret 泄漏出去, 写饭否机器人的时候会用到这两个东西。
安装模块
zef install FanFou
饭否机器人
新建一个名为 ai-fan.pl6
的脚本, 内容如下:
use FanFou; # 加载模块
my %oauth_consumer = key => 'your_consumer_key', secret => 'your_secret_key';
# 获取 client
my $client = FanFou::XAuth.new(
oauth_consumer => %oauth_consumer, # 保存 Consumer key 和 Consumer secret 的散列
username => 'your_username', # 用户名
password => 'your_password' # 密码
);
# 打印首页时间线的消息
my $resp = from-json await $client.request('/statuses/home_timeline', 'GET').body-text;
say $resp.perl;
# 发送消息
my %body = 'status' => "Hi, fan, I'm a robot written in Raku.";
$client.request('/statuses/update', 'POST', %body);
拿到 $client
之后, 就可以使用饭否的 API 了。
运行:
raku ai-fan.pl6
刷新饭否, 就可以看见刚才发的这条消息了。
-OFun :)