记录Notion API Authorization中的一个坑
正文
In your integration code, include the token in the
Authorizationheader with every API request, as in the following example:
GET /v1/pages/b55c9c91-384d-452b-81db-d1ef79372b75 HTTP/1.1 Authorization: Bearer {INTEGRATION_TOKEN}
由此可知,在每次提出请求的时候都要在头部加入认证信息。官方代码的Shell示例中明确表示了请求中--header 'Authorization: Bearer '"$NOTION_API_KEY"''的占位,而Javascript的代码示例却直接略过了这一点,这导致了复制使用官方Javascript代码的时候很容易因为忽略认证步骤而产生错误。
以创建数据库为例,根据官方文档Create a database的例子,其省略了请求中头部的Authorization,代码如下:
const options = {
method: 'POST',
headers: {
accept: 'application/json',
'Notion-Version': '2022-06-28',
'content-type': 'application/json'
}
};
fetch('https://api.notion.com/v1/databases', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
如果直接使用如上所示官方文档的代码,则会返回401的错误,返回错误信息如下所示:
{
object: 'error',
status: 401,
code: 'unauthorized',
message: 'API token is invalid.'
}
完整的创建数据库请求代码为:
const options = {
method: 'POST',
headers: {
Authorization: "Bearer " + '这里应为Notion的密钥(token)',
accept: 'application/json',
'Notion-Version': '2022-06-28',
'content-type': 'application/json'
},
body: JSON.stringify(body)
}
fetch('https://api.notion.com/v1/databases', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
依此类推,在使用Notion API的时候,一定不要忘了在请求的头部加入"Authorization"部分的信息。
Reference
记录Notion API Authorization中的一个坑的更多相关文章
- andriod8.1.0源码编译中的一个坑-package com.sun.javadoc does not exist
这里记录编译过程中的一个坑!!! 编译过程中出现了下面的报错 external/doclava/src/com/google/doclava/ClassInfo.java:20: error: pac ...
- 记前端状态管理库Akita中的一个坑
记状态管理库Akita中的一个坑 Akita是什么 Akita是一种基于RxJS的状态管理模式,它采用Flux中的多个数据存储和Redux中的不可变更新的思想,以及流数据的概念,来创建可观察的数据存储 ...
- Spring Boot 计划任务中的一个“坑”
计划任务功能在应用程序及其常见,使用Spring Boot的@Scheduled 注解可以很方便的定义一个计划任务.然而在实际开发过程当中还应该注意它的计划任务默认是放在容量为1个线程的线程池中执行, ...
- xcode中得一个坑
因项目需求变动,我必须在coredata中的WorkLogModel表中添加一个字段:抄送人.起初我给这个字段起名为copyPerson,一切准备就绪后,发现从数据库读取这个copyPerson时,第 ...
- PHP中的一个”坑“
说一个极有可能在工作中遇到的问题——foreach的引用 foreach $arr = range(1,3); //[1,2,3] foreach($arr as &$val) { } for ...
- 需求:一个页面中需要用到多个字典数据。用于下拉选项,同时,需要将其保存为json格式。以便于key,value的相互转换。记录在实现过程中踩的坑
本文涉及到的知识: Promise,all()的使用 js处理机制 reduce的用法 map的用法 同步异步 需求: 一个页面中需要用到多个字典数据.用于下拉选项,同时,需要将其保存为json格式. ...
- HashMap 中的一个“坑”!
最近公司新来了一个小伙伴,问了磊哥一个比较"奇怪"的问题,这个问题本身的难度并不大,但比较"隐蔽",那究竟是什么问题呢?接下来我们一起来看. 起因 最近公司 ...
- mysql 线上not in查询中的一个坑
今天早上开发又过来说,怎么有个语句一直没有查询出结果,数据是有的呀,并发来了如下的sql(为了方法说明,表名及查询均做了修改): select * from t2 where t2.course no ...
- 关于abp中使用的sweetalert对话框组件的confirm确认对话框中的一个坑
今天修改了一个功能,限制删除用户,在删除的时候不满足条件的时候提示用户原因,使用的sweet alert组件. abp框架前端集成了sweet alert 对http请求的error做了全局处理,我在 ...
- 记录 Java 的 BlockingQueue 中的一些坑
最近学习了 BlockingQueue,发现 java 的 BlockingQueue 并不是每一个实现都按照 BlockingQueue 的语意来的,其中有不少坑. 直接上代码吧: 1.关于Prio ...
随机推荐
- Scala 递归和尾递归
1 package com.atguigu.function 2 3 object Recursion { 4 def main(args: Array[String]): Unit = { 5 // ...
- .Net Core AutoFac 使用方法讲解大全,具体详细使用知识总结
AutoFac 具体使用知识总结 阅读前提示 AutoFac 只是众多IOC框架的其中一种, 比较主流的有Unity.autofac.spring.net.MEF.Injection.Asp.Net ...
- 5W1H聊开源之Who和How——谁、如何参与开源?
上次Who的主体是谁"发明"了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中? 很多人都以为参与开源是一件 ...
- #Multi-SG#HDU 5795 A Simple Nim
题目 有\(n\)堆石子,每次可以从一堆中取出若干个或是将一堆分成三堆非空的石子, 取完最后一颗石子获胜,问先手是否必胜 分析 它的后继还包含了分成三堆非空石子的SG函数,找规律可以发现 \[SG[x ...
- Jetty的http3模块
启用http3模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http3 命令的输出,如下: ALERT: There are ena ...
- HMS Core 3D Engine助您实现逼真3D渲染效果,构筑大型3D数字世界
HMS Core 3D Engine是一款高性能.高画质.高可靠的实时3D引擎,旨在帮助开发者制作高品质的3D应用.3D Engine将为您提供可编程渲染管线,多维粒子系统,3D角色与动画,超大地形地 ...
- C++调用Python-0:搭建环境
1.进入到Python安装目录 2.将Python安装目录中的 include 和 libs 文件夹放在 C++项目中 3.设置 附加包含目录 和 附加库目录.附加依赖项(python310_d.li ...
- Windows XP Vmware 无法自适应窗口
之前在吾爱破解上找到一个 WindowsXP SP3 的精简系统(目前找不到在哪了),自带 VMtools 和 52 破解工具包,很适合 XP 系统下的逆向和病毒分析.目前准备学习一下<恶意代码 ...
- spring cloud 学习笔记 服务注册与发现(二)
前言 服务注册与发现的学习.这个其实是微服务的核心了,因为微服务的一个重要理念就是将项目拆分,达到解耦的地步.那么如何把这些服务联系到一起就很关键. 如果一个服务到另外一个服务通过ip地址之间访问,虽 ...
- 【Azure APIM】列举几种在APIM 策略中的主动生产的错误语句
问题描述 在为APIM服务配置了诊断日志(Diagnostic Setting),把日志收集在Log A Workspace中,需要验证日志中是否能查看到请求的错误信息. 所以想人为的来制造一些错误. ...