Perl环境及飞书机器人脚本

OPENSSL 安装

检查版本

openssl version -a

如果已经安装则测试一下信息

OpenSSL 1.0.2k-fips  26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  rdrand dynamic 

如果未安装则运行命令

wget http://www.openssl.org/source/openssl-1.1.0 
tar -zxv openssl-1.0.2p.tar.gz
cd openssl-1.0.2p/
./config 
make && make install
./config shared 
make clean
make  && make install

安装PERL

yum install perl

安装CPANM

yum install perl-CPAN
yum install -y perl-App-cpanminus.noarch

如果找不到yum,请到到git仓库源码下载 https://codeload.github.com/miyagawa/cpanminus/tar.gz/App-cpanminus-1.7907

tar -xzvf cpanminus-App-cpanminus-1.7907.tar.gz 
cd  cpanminus-App-cpanminus-1.7907/App-cpanminus/
perl Makefile.PL
cp bin/cpanm /usr/bin/cpanm
cpanm -h  ##检查安装成功

安装HTTPS模块及JSON依赖包

https请求需要依赖一下模块

cpanm JSON
cpanm Crypt::SSLeay
cpanm LWP::Protocol::https --force

报警程序

#!/usr/bin/perl
use utf8;
use strict;
use warnings FATAL => 'all';
use HTTP::Request;
use HTTP::Headers;
use LWP::UserAgent;
use JSON;


my $flyserver="https://open.feishu.cn/open-apis/bot/v2/hook/";
my $flytokent="17d8d6d5-9f9d-479e-b6cb";

my $json = JSON->new();

sub sendMessage{
	my $message={text=>$_[0]};
	my $header = HTTP::Headers->new( Content_Type => 'application/json; charset=utf8', );
	my $url=$flyserver.$flytokent;
	my $data={content=>$message,msg_type=>"text"};
	my $http_request = HTTP::Request->new( POST => $url, $header, encode_json($data));
	my $user_agent = new LWP::UserAgent;
	my $response = $user_agent->request($http_request);
	print $response->content;
}
sendMessage("perl 报警测试");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
【案例】 【案例】Python飞书机器⼈编辑表格 飞书机器⼈编辑表格 #!/usr/bin/env python # -*- coding: utf-8 -*- from .config import * import requests import json class Bot: def __init__(self, app): self.app = app # app为机器⼈ self.table = None # 共享⽂档的table_id self.sheet = None # 共享⽂档的sheet_id self.token = self.get_token() self.header = { "Authorization": self.token, "Content-Type": "application/json; charset=utf-8" } def get_token(self): """获取应⽤token""" url = url_api['url_token'] headers = {"Content-Type": "text/plain"} r = requests.post(url, headers=headers, json=self.app) return "Bearer " + json.loads(r.text)['tenant_access_token'] def use(self, table, sheet): self.table = table self.sheet = sheet return self def add_data(self, sheet_range="", values=[]): """增加数据,原始数据下移""" data = { "valueRange": { "range": self.sheet + sheet_range, "values": values } } r = requests.post(urls['插⼊数据'] % self.table, headers=self.header, json=data) return r.text def del_data(self, major=0, start_index=1, end_index=1): """删除数据""" data = { "dimension": { "sheetId": self.sheet, "majorDimension": ['ROWS', 'COLUMNS'][major], "startIndex": start_index, "endIndex": end_index } } r = requests.delete(urls['删除数据'] % self.table, headers=self.header, json=data) return r.text def union_cell(self, sheet_range, major=0): """合并单元格""" url = urls['合并单元格'] % self.table data = { "range": self.sheet + sheet_range, "mergeType": ['MERGE_ALL', 'MERGE_ROWS', 'MERGE_COLUMNS'][major] } r = requests.post(url, headers=self.header, json=data) return r.text def split_cell(self, sheet_range): """拆分单元格""" data = { "range": self.sheet + sheet_range } r = requests.post(urls['拆分单元格'] % self.table, headers=self.header, json=data) return r.text def set_style(self, sheet_range, kind): def set_style(self, sheet_range, kind): """设置单元格格式""" data = { "appendStyle": { "range": self.sheet + sheet_range, "style": self.style_list(kind) } } r = requests.put(urls['设置单元格格式'] % self.table, headers=self.header, json=data) return r.text def phone_to_open_id(self, mobile

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robin-cloud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值