返回

用GitHub Actions在掘金实现文章定时发布:一步到位!

前端

掘金:释放你的写作潜能

掘金是一个备受开发人员欢迎的中文技术社区,它以优质的技术内容和活跃的开发者交流而闻名。对于勤奋的创作者来说,能够安排文章的定时发布是一项极大的便利,可以节省宝贵的时间和精力,并确保文章在最佳时间与目标受众见面。然而,掘金官方尚未推出这一功能。

GitHub Actions:自动化你的开发流程

GitHub Actions是一个功能强大的平台,允许开发者自动化各种开发任务,例如构建、测试和部署代码。它提供了一个简单易用的界面,可以创建和管理工作流,这些工作流可以在特定的事件或计划的任务触发时自动运行。

利用GitHub Actions实现定时发布

通过巧妙地利用GitHub Actions的强大功能,我们可以轻松实现掘金文章的定时发布。以下是详细步骤:

  1. 创建GitHub Actions工作流 :登录GitHub并创建一个新的工作流,指定触发器(例如特定时间的计划任务)和作业(包含要执行的任务)。

  2. 使用掘金API发布文章 :在作业中,使用掘金提供的API(应用程序编程接口)来发布文章。API会要求你提供文章标题、内容、标签和其他详细信息。

  3. 设置电子邮件通知 :为了及时了解文章发布情况,可以在工作流中添加一个任务,使用脚本(例如Node.js)发送电子邮件通知。脚本会连接到你的电子邮件帐户并发送一封包含文章链接的电子邮件。

示例代码

以下示例代码展示了如何使用GitHub Actions、掘金API和Node.js脚本实现定时发布:

# 工作流文件
name: 定时发布掘金文章

on:
  schedule:
    - cron: '0 0 * * *'  # 每天凌晨零点触发

jobs:
  发布文章:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install
      - run: node publish-article.js
// publish-article.js
const got = require('got');
const nodemailer = require('nodemailer');

// 掘金API配置
const JUEJIN_URL = 'https://api.juejin.cn/v1/article/add';
const JUEJIN_TOKEN = '你的掘金个人令牌';

// 电子邮件配置
const EMAIL_HOST = 'smtp.qq.com';
const EMAIL_PORT = 465;
const EMAIL_USER = '你的邮箱地址';
const EMAIL_PASS = '你的邮箱授权码';
const EMAIL_TO = '接收通知的邮箱地址';

async function publishArticle() {
  // 准备文章内容
  const article = {
    title: '定时发布掘金文章',
    content: '本文介绍了如何使用GitHub Actions在掘金实现文章定时发布。',
    tags: ['掘金', '定时发布'],
  };

  // 使用掘金API发布文章
  const response = await got.post(JUEJIN_URL, {
    headers: {
      Authorization: `Bearer ${JUEJIN_TOKEN}`,
    },
    json: article,
  });

  // 检查响应结果
  if (response.statusCode !== 200) {
    throw new Error('发布文章失败');
  }

  // 获取文章链接
  const articleLink = response.body.data.detailUrl;

  // 发送电子邮件通知
  const transporter = nodemailer.createTransport({
    host: EMAIL_HOST,
    port: EMAIL_PORT,
    secure: true,
    auth: {
      user: EMAIL_USER,
      pass: EMAIL_PASS,
    },
  });

  const mailOptions = {
    from: EMAIL_USER,
    to: EMAIL_TO,
    subject: '掘金文章已发布',
    text: `你的掘金文章已发布,点击链接查看:${articleLink}`,
  };

  await transporter.sendMail(mailOptions);

  console.log('文章发布成功,并已发送电子邮件通知');
}

publishArticle();

小贴士

  • 确保你的掘金个人令牌具有发布文章的权限。
  • 自行调整定时任务的计划时间。
  • 可以根据自己的需要定制电子邮件内容。

释放你的写作潜力

利用GitHub Actions在掘金实现文章定时发布,你可以专注于创作高质量的内容,让你的思想在最佳时机与世界分享。告别苦等官方功能,拥抱自动化的便利,提升你的掘金写作体验!