[typecho]做一个twitter的插件玩玩

前言

最近想将自动发送推文的脚本转移到typecho中,原先都是直接新增站点来做,但维护起来比较麻烦,还要维护多个站点。
如果转移到typecho中,作为插件,这样,文章更新的时候,也可以发给推特了!

已实现

1、基础功能

  • 支持oauth1.1验证(自动跳转,自动存储到数据库中)
  • 采集推特的最新趋势数据
  • 根据趋势数据采集最新推文
  • 支持根据推文id,取推文明细
  • 支持手工转发/取消转发,喜欢/取消喜欢,完全跳过该推文
  • 支持过滤特定关键字的推文
  • 支持过滤特定语言的推文(PHP的NLP简单实现,实验)
  • 文章新增支持自动发推(更新不会重复发布)可配置是否推
  • 支持手工拉取趋势信息,自动合并现有相同趋势,并且新趋势热度值会自动更新
  • 可作废所有趋势
  • 支持传递woeid作为趋势的区域范围。可以精准找到对应国家的推文。
  • 支持查看个人推文

2、AI能力

  • 接入腾讯云翻译api,每月有免费的份额可以支持翻译功能
  • 接入腾讯云NLP分类api,每月有免费的份额可以支持该特性。(经过咨询腾讯云客服,得知,NLP智能文本分类功能,对英文支持极其的差)

3、UI

  • 后台页面支持
  • 后台可以手工转发/取消转发,喜欢/取消喜欢,跳过推文
  • 配置全界面化

计划实现

AI能力

  • 接入阿里云

使用的接口

使用的接口:
TwitterApi:

  • oauth/request_token 请求oauth_token
  • oauth/authorize 请求验证账户权限
  • oauth/access_token 请求access_token
  • statuses/show 根据推文id取推文详细内容
  • search/tweets 根据指定关键字搜索推文列表
  • trends/place 获取趋势信息
  • statuses/retweet/ 转发推文
  • favorites/create 喜欢某条推文
  • statuses/update 新推文
    TencentCloudApi:
  • TextTranslate 文本翻译
  • TextClassification NLP分类

问题

问题:

  • 因为默认的typecho数据库使用的编码集是utf8,这个在mysql中范围不够,插入推文的时候,如果字段包含emoji表情,会报错
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8C\x97 \xE2...' for column 'user_name' at row 1
Typecho_Db_Query_Exception: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x8C\x97 \xE2...' for column 'user_name' at row 1 in /var/www/html/var/Typecho/Db/Adapter/Pdo.php:105
Stack trace:
#0 /var/www/html/var/Typecho/Db.php(353): Typecho_Db_Adapter_Pdo->query('INSERT INTO typ...', Object(PDO), 2, 'INSERT')
#1 /var/www/html/usr/plugins/AutoTwitterStatus/Action.php(259): Typecho_Db->query(Object(Typecho_Db_Query))
#2 /var/www/html/usr/plugins/AutoTwitterStatus/Action.php(207): AutoTwitterStatus_Action->queryTweetByTrends()
#3 /var/www/html/var/Typecho/Router.php(138): AutoTwitterStatus_Action->send()
#4 /var/www/html/index.php(23): Typecho_Router::dispatch()
#5 {main}

两种方案,如果不修改数据库编码为:utf8mb4,的同学,忽略这个报错,则该条数据不会被插入。
如果emoji表情的推文也要插入的,则不能先启用插件,否则表会自动创建,应该先改
webroot/config.inc.php文件中的$db->addServer参数,从utf8改成utf8mb4

截图

目前进度图:

捕获的推文内容

安全配置信息

插件配置


本文作者:小蚊子
本文链接:[typecho]做一个twitter的插件玩玩 - https://www.djc8.cn/archives/typecho-make-a-plugin-for-twitter.html
版权声明: 知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

标签: 插件, typecho, plugins, 推特

添加新评论