寫一個福利 Telegram 機器人

img

官網

創建 bot

根據文檔,在 telegram 裏面添加 @BotFather, 然後跟他聊天來創建機器人

拿到 token

測試

在瀏覽器中(翻牆)輸入 https://api.telegram.org/botYOU_TOKEN/getMe 測試:
返回如下格式,說明成功。

{
    "ok": true,
    "result": {
        "id": 249208551,
        "first_name": "LinuxC",
        "username": "LinuxC_bot"
    }
}

編寫 api

我使用的 node 寫的, 參考 telegram-node-bot

首先安裝 telegram-node-bot

$ npm install --save telegram-node-bot

然後創建 app.js

'use strict'

var api = require('./api')

const Telegram = require('telegram-node-bot')
const TelegramBaseController = Telegram.TelegramBaseController
const tg = new Telegram.Telegram('YOU_TOKEN')

class PingController extends TelegramBaseController{
    pingHandler($){
        api.getMZ(function(data){
            $.sendMessage(data)
        })
    }
    get routes(){
        return { 'ping':'pingHandler'}
    }
}

tg.router
  .when(['ping'],new PingController())

抓取圖片的 api.js, 抓取圖片可以參考前面的文章 Node.js 爬微信文章


'use strict'
var http = require('http')
var cheerio = require('cheerio')

var url = 'http://www.kmeitu.com/';

function getPicture(html){
    var array = []
    var $ = cheerio.load(html)
    var items = $('.lz-img')
    items.each(function (item) {
        var url = $(this).attr('data-src').replace(/\s+/g, '')
        array.push(url)
    }) 
    return array[Math.floor(Math.random()*array.length)]
}

exports.getMZ = function(callback){
    http.get(url, function (res) {
        var html = ''
        res.on('data', function (data) {
            html += data
        })
        res.on('end', function () {
            //console.log(html)
            var array = getPicture(html)
            callback(array)
        })
    }).on('error', function (e) {
        console.log('get html error')
    })
}

然後運行 node app.js 即可
注意點: 全程需要 FQ(跟 telegram 連接用), app.js 方法服務器運行(我使用的 pm2 )。

文章來自: http://hanks.xyz

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章