Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于Github issues + umi 搭建一个免费的带评论功能的博客(一)

基于Github issues + umi 搭建一个免费的带评论功能的博客(一)

作者头像
astonishqft
发布于 2022-05-10 12:26:28
发布于 2022-05-10 12:26:28
72700
代码可运行
举报
运行总次数:0
代码可运行

作为一个工作了好几年的前端搬砖狗,搭建一个属于自己的博客是很有必要的,一来可以总结自己的开发学习经验,二来可以分享和记录下自己的学习轨迹,可谓好处多多,那么今天我就给大家介绍一种搭建博客的新方式。

✈️为什么选择Github issues而不是其他方式?

其实在使用Github issues搭建博客之前自己就曾经尝试过其他方式搭建属于自己的博客平台,最早的时候自己买过云服务器,买的域名,搭建过一个博客系统,但是发现每次管理博客很费事,后来又做了个博客的后台管理系统,方便自己对博客进行管理,这种方式自由度很高,可以随心所欲的根据自己的想法来实现美化和改造自己的博客系统,缺点也是显而易见的,每个月的服务器租赁开销也是一笔不小的开销,时间久了就放弃了。后来还尝试过使用hexo框架搭建的博客,挂载到github.io上,这种方式不用自己租赁服务器,而且可以部署在Github上,但是缺点也是有的,比如自定义能力比较差,只能基于hexo提供的一些模版来打造自己的博客,还有就是博客的评论功能不是很完善,虽然也可以基于一些第三方的插件实现,比如“多说”,但是稳定性不是很强,使用起来比较麻烦,最后也放弃了。

Github issues具有下面几个优点:

  • 天生的前后端分离

借助于Github提供的API接口,我们可以轻松地和数据进行交互,比如获取issues列表数据、给某条issue点赞、给某条issue进行评论(惊喜的发现这个不就可以实现博客的评论操作了么🐶)。

  • 多种接口调用方式

Github贴心的为开发者提供了两种接口调用方式,REST API v3接口和GraphQL API v4接口,你可以根据自己需要使用不同的调用方式。

  • Github issues支持Markdown语法,支持给issues加标签

现在大部分人写博客都是基于Markdown语法来书写的,Github issues内置对Markdown语法的支持,同时,针对每条issue,可以设置相应的标签(Label),甚至还可以自定义标签的颜色,这里不得不说Github为大家想的真是周到啊😄。

  • Github提供了基本的用户信息

Github提供了获取用户的接口,用户使用Github账号登录后,可以获取用户的基本信息,包括用户名、头像、坐标地点、邮箱等信息,方便我们展示这些基本信息。

🚀认识Github App

什么是Github App

前面我们说到了,基于Github提供的API,我们可以干很多事情,但是很多接口直接去调用是没法调用成功的,必须要提供认证信息才能调用成功。这里就要用到Github App了,那么什么是Github App呢?大家可以参考下官方说法Github App。

简单来说,Github App提供了一个认证的方式,用户通过创建一个Github App,来设置Github提供的功能和权限,然后将该App安装到某一个repository中,这样这个repository就能获取该Github App所赋予的相应操作权限。

为GitHub App识别和授权用户

当我们的Github App代表用户对服务器发起请求时,必须使用用户的访问令牌授权这些请求,主要包括以下三个步骤(具体可以参考这里Github App授权流程):

  1. Users are redirected to request their GitHub identity
  2. Users are redirected back to your site by GitHub
  3. Your GitHub App accesses the API with the user's access token
  • 第一步:需要跳转到Github指定的授权页面进行授权 授权的请求地址是:https://github.com/login/oauth/authorize 这是一个Get请求,请求的同时还需带上以下几个参数:

名称

类型

描述

client_id

string

必填项。创建Github App时生成的client ID。

redirect_uri

string

必填项。重定向的地址。当授权成功后会重定向到该地址,并且会将授权码在URL上一并返回,需要注意的是,这里的重定向地址必须要和我们创建Github App时所填写的User authorization callback URL保持一致。

state

string

非必填项。一个防止伪造攻击的随机数字符串。

login

string

非必填项。建议用于登录和授权应用程序的特定帐户。

  • 第二步:Github重定向回指定的callback URL 当授权成功后,Github会重定向到上一步中的callback URL,同时会在地址栏带上一个code参数的授权码,接下来我们就需要通过这个授权码来获取Token。

获取到授权码后,向这个地址发送一个POST请求以获取Token: https://github.com/login/oauth/access_token

这个请求同样有些参数需要传递:

名称

类型

描述

client_id

string

必填项。创建Github App时生成的client ID。

client_secret

string

必填项。创建Github App时生成的client secret。

code

string

必填项。上一步中获取的授权码。

redirect_uri

string

非必填项。授权成功后的重定向地址。

state

string

非必填项。第一步中传入的随机数。

请求成功后会得到如下的返回结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer

这个请求会存在跨域的问题,后面我会教大家如何解决这个问题

  • 第三步:使用获取的Token去请求Github API 上面两步成功完成后,现在我们就可以用获取到的Token去调用相应的Github API了。

上面就是一个完整的授权获取数据的过程,那么下面就介绍下如何来创建一个Github App

🌿创建一个Github App

Github的主页点击用户头像,选择Settings菜单,点击Developer settings菜单,即可进入Github Apps操作页面,点击New Github App按钮,即可进入到创建Github App的页面。

创建Github App 填写好Github App nameHomepage URLUser authorization callback URL这些字段。注意因为是开发阶段,所以这里的User authorization callback URL地址我填写的是我本地开发环境地址,真正上线后还需要替换成github.io地址。

接着需要设置相关权限,因为我们是用Issues来作为博客的数据来源,所以需要勾选上允许读写操作。

Github App信息 接下来还可以根据你自己的需要设置一些其他方面的权限,比如订阅事件,当有人评论你的Issues时,Github会自动以邮件的形式通知你,这个还是挺实用的,方便你随时对Issues进行回复。

设置相应权限 点击Create Github App按钮即可完成一个Github App的创建过程。 操作成功后即可看到完整的Github App信息:

Github完整信息

🐘安装Github App

前面提到过,创建的Github App还必须要安装到对应的repository,才能够在调用API的时候获取设置的相应权限。

在刚刚创建成功的Github App页面,选择左侧的Install App菜单,然后选择你的账户去安装,这里你可以选择给所有的repository进行安装或者选择某一个指定的repository进行安装。

安装Github App

总结

至此,关于利用Github App获取对Github API的相关操作权限的部分就全部结束了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端架构师笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker入门(四):安装使用
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用HTTPS 传输的软件包以及 CA 证书。
传说之下的花儿
2023/10/02
7190
Docker入门(四):安装使用
Docker的安装以及加速器的配置
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
Python编程与实战
2020/03/05
1.9K0
Docker的安装以及加速器的配置
Docker(一)——环境配置
官方提供的安装教程地址:https://docs.docker.com/install/linux/docker-ce/centos/#os-requirements 官方脚本https://get.docker.com/ 其中关于镜像的选择是阿里云和亚马逊云,中国地区推荐了使用阿里云镜像 最快捷的方式脚本一键安装,国内设置镜像为Aliyun。
羊羽shine
2019/05/28
1.5K0
Linux下Docker的安装
Docker CE支持64位版本 Centos 7,并且要求内核版本不低于3.10。
Wyc
2019/06/03
2K0
002.Docker安装部署
Delta RPMs disabled because /usr/bin/yum provides applydeltarpmnot installed.
木二
2019/07/26
4530
docker安装(CentOS 7)
本文由 bytebye 创作 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
ByteBye
2019/09/24
1K0
CentOS 7 安装 Docker CE
旧版本的 Docker 在 CentOS 中的包名为docker或docker-engine。如果之前安装了 Docker 的旧版本,需要先卸载旧版 Docker 及相关依赖:
苏易北
2019/01/10
1.4K0
CentOS 7 安装 Docker CE
linux系统安装docker
Docker是一种轻量级的容器技术,可以帮助开发者更加方便地打包、发布和管理应用程序。在Linux系统上安装Docker非常容易,本文将详细介绍如何在Linux系统上安装和配置Docker,并提供一些示例,以帮助初学者更好地了解Docker。
玖叁叁
2023/04/26
8.2K0
Linux 安装 Docker
本文介绍最新版本的 Docker CE 安装。 本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 CentOS 7 配置 REPO Install yum-utils, which provides the yum-config-manager utility: $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 官方源 # $ sudo yum-config-manager \
康怀帅
2018/02/28
2.6K0
Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx
Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!
程序员鹏磊
2018/01/12
1.2K0
Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx
Docker---(0)Docker 安装
----------------------------------------------------------------------------------------------------------
IT云清
2019/01/22
1K0
云原生之路 | 3.实践Docker容器环境部署及初体验
温馨提示:作者最近开通的知识星球,全栈系列从门到实践教程将会逐步同步到星球内,加入星球将获得作者在安全、运维、开发中的所有学习实践笔记,和问题答疑以及远程技术支持,希望大家多多支持!
全栈工程师修炼指南
2024/03/13
6780
云原生之路 | 3.实践Docker容器环境部署及初体验
一文了解Docker
1)客户端(client): 通过命令行与Docker的守护进程通信,类似于mysql的客户端工具
终身幼稚园
2020/05/18
5870
一文了解Docker
1.Docker学习之基础知识
描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案; ,诞生于2013年初最初发起者是dotCloud公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,后续由于docker的发展后来也改名为Docker Inc,它是仅次于OpenStack最受欢迎的云计算开源项目;Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise Edition)
全栈工程师修炼指南
2022/09/28
1.6K0
1.Docker学习之基础知识
CentOS Docker 安装
打开 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 并下载指定版本的 rpm 文件。
Woo
2021/01/06
9940
CentOS Docker 安装
CentOS 8.4安装Docker
  Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。为了让开发、部署、测试和分发变得更高效和轻松,让我们把Docker安装起来体验一下它的魅力所在吧!
追逐时光者
2021/11/19
5750
CentOS 8.4安装Docker
Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。为了让开发、部署、测试和分发变得更高效和轻松,让我们把Docker安装起来体验一下它的魅力所在吧!
用户4268038
2021/11/18
7930
使用docker完成生信分析环境搭建
生信开发人员最头疼的问题,可能就是平台搭建和软件安装了。部署和迁移上要费很大力气。本文讲述使用docker制作一个镜像,后续通过导入自己定制的镜像,复制文件完成分析流程的部署和迁移。
SliverWorkspace
2020/01/17
1.8K0
Docker入门-介绍和安装
Docker最初是dotCloud公司创建人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于2013年3月以Apache2.0授权协议开源,主要项目代码在Github上进行维护。Docker项目后来加入了Linux基金会,并成立推动开放容器联盟(OCI)。
小码农薛尧
2019/08/21
6970
Docker入门-介绍和安装
Ubuntu Server下Docker实战 01: 安装Docker
本系列文章主旨在于使用docker来搭建实际可用的基础服务,具体到每一步的操作和设置。
星哥玩云
2022/07/24
1.2K0
相关推荐
Docker入门(四):安装使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验