관리 메뉴

나의 개발일지(김지헌)

노션 API 본문

공부

노션 API

코딩이좋아요 2023. 3. 9. 16:35

https://developers.notion.com/

사이트 접속후 로그인한다 View my integrations 클릭 후 통합 API 만들기

만들고 나면 시크릿키 복사해둔다.

 

우리는 표를 기준으로 사용 할꺼기 때문에 표 페이지를 하나 만들어준다.

npm i @notionhq/client 설치

 

표의 정보를 찾아오는 방법 불러올 때 각 정보를 잘 확인 하고 생성할 때 사용하자(ex 타입들)

/* 순서 
1. 노션 디벨롭에서 API키 발급
2. 페이지 작성(표로 만들었습니다.)
3. 우측 상단 점3개 클릭후 연결에 발급받은 API추가 
*/
/* 노션 API키 */
const notionKey = process.env.NOTION_KEY
/* 노션 페이지 id
https://www.notion.so/노션페이지id(이거사용) ?v=이거아님=4 */
const notionDatabaseId = process.env.NOTION_DATABASE_KEY
const notion = new Client({ auth: notionKey })

async function getData(){
    const {results} = await notion.databases.query({ database_id: notionDatabaseId })
    console.log(results)
    const resultsdata = results.map((x)=>{
      const office =  x.properties.회사명.title.map((x)=> x.plain_text).join("")
      const name = x.properties.이름.rich_text.map((x)=>x.plain_text).join("")
      const phone = x.properties.연락처.rich_text.map((x)=>x.plain_text).join("")
      const content = x.properties.문의내용.rich_text.map((x)=>x.plain_text).join("")
      const createdAt = x.properties.생성일시.created_time
      return{
        "회사명" : office,
        "이름" : name,
        "연락처" : phone,
        "문의내용" : content,
        "생성일시" : createdAt
      }
    })
    console.log(resultsdata)
}
// console.log(getData())

//객체 선언 해둔거를 => 객체이름["키"]로 정보 찾기 가능
const page_values = {
    "회사명": "값",
    "이름": "값",
    "연락처": "값",
    "문의내용": "값",
   //굳이 필요없음 "생성일시": "2023-03-10T02:56:00.000Z"
}
//값 넣는 코드
async function createData(){
    await notion.pages.create({
        "parent": { "database_id": notionDatabaseId },
        "properties": {
            "회사명": {
            "title": [
                {
                "text": {
                    "content": page_values["회사명"]
                }
                }
            ]
            },
            "연락처": {
            "rich_text": [
                {
                "text": {
                    "content": page_values["연락처"]
                }
                }
            ]
            },
            "이름": {
            "type":"rich_text",
            "rich_text": [
                {
                "text": {
                    "content": page_values["이름"]
                }
                }
            ]
            },
            "문의내용": {
            "type":"rich_text",
            "rich_text": [
                {
                "text": {
                    "content": page_values["문의내용"]
                }
                }
            ]
            }
        }
      });
}
// console.log(createData())

title : 표의 제일 처음 구성 되는 타입이다

'공부' 카테고리의 다른 글

리눅스 명령어 및 EC2설정 NginX  (0) 2023.03.13
공부  (0) 2023.03.13
S3 버킷, Route53, CloudFront 연결해보기 + HTTPS통신 까지  (0) 2023.03.07
Route 53  (0) 2023.03.06
클라우드프론트(CloudFront)  (0) 2023.03.06