饭否机器人教程

Write fanfou robot in Raku

使用 Raku 轻松活泼地写饭否机器人

img

安装 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 上提问。

创建应用

首先需要创建一个新的应用, 去饭否开放平台申请一个饭否应用。在创建应用列表下面可以查看你创建的所有应用, 如果是第一次创建应用, 那么点击创建新应用按钮:

img

在跳转后的新建一个应用页面下, 标红星 * 的是必填项:

  • 应用名称, 给机器人起一个好听的酷酷的名字。
  • 应用类型, 选择机器人应用。
  • 主页, 点击我的主页, 复制地址栏中的链接, 就是你的主页。
  • 描述, 说明你这个应用是做什么用途的。

img

创建完成后会显示如下信息:

条目
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 keyConsumer 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 :)

robot 
comments powered by Disqus