[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的插件玩玩-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2022年03月19日,已超过 964 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束