wp获取memos最新一条说说
首先感谢下GPT…0基础做博客真的太难了,昨天在新购置的阿里云虚拟机上用宝塔配置了memos,反向代理让公网可以访问,我想把首页置顶的说说模块拉取memos上自己最新的一条说说,于是开始研究。
错的代码试了几十次,终于在ai的帮助下实现了,实际上memos的api端口可以很方便的获取数据(例如这里,获取指定ID最新的一条说说),获取到的数据是JSON格式,我需要做的只是从JSON格式的信息中用php的正则表达式来筛选出自己需要的,但是好像这样不行。
好在最终在它的帮助下,成功了~记录下memos api的抓取代码:
<?php // API接口URL $url = 'https://b.ihaihe.cn/api/v1/memo?creatorId=1&rowStatus=NORMAL&limit=1'; // 获取API返回的JSON数据 $response = file_get_contents($url); // 解析JSON数据 $data = json_decode($response, true); // 第二个参数true表示返回关联数组而不是对象 // 检查解析是否成功 if ($data === null && json_last_error() !== JSON_ERROR_NONE) { die("JSON 解析错误: " . json_last_error_msg()); } // 提取 content 字段的值 if (isset($data[0]['content'])) { $content = $data[0]['content']; echo "#" . $content; } else { echo "未找到 content 字段或者数据格式不符合预期。"; } ?>
2024年7月20日,添加修改,如果JSON获取到的数据超过100字,则随机显示设置好的文字:
<?php // API接口URL $url = 'https://b.ihaihe.cn/api/v1/memo?creatorId=1&rowStatus=NORMAL&limit=1'; // 获取API返回的JSON数据 $response = file_get_contents($url); // 解析JSON数据 $data = json_decode($response, true); // 第二个参数true表示返回关联数组而不是对象 // 检查解析是否成功 if ($data === null && json_last_error() !== JSON_ERROR_NONE) { die("JSON 解析错误: " . json_last_error_msg()); } // 提取 content 字段的值 if (isset($data[0]['content'])) { $content = $data[0]['content']; // 预设的提示语数组 $defaultMessages = [ "#阳光温热,岁月静好,你还不来,我怎敢老。", "#那些将要去的地方,都是素未谋面的故乡。", "#我做人的第一原则:关你屁事 关我屁事。", "#时光像肉包子打狗一样,一去不复反。", "#我是一棵树,一棵让你放弃整片森林的树。", "#听了这么多大道理,还是没过好这一生。", "#最好的心理医生,是有钱的自己。" ]; // 检查 content 字段长度 if (mb_strlen($content, 'UTF-8') > 100) { $randomMessage = $defaultMessages[array_rand($defaultMessages)]; echo $randomMessage; } else { echo "#" . $content; } } else { echo "配置错误,请检查JSON数据。"; } ?>
顺便说一句,折腾万岁!~
评论功能已经关闭!