inflearn logo
강의

Course

Instructor

Solid backend NestJS, from basics to advanced

Section Introduction

네이버 api 요청 관련 질문 있습니다

516

hyunsokstar6698

53 asked

1

네이버 api 요청 관련 질문 있습니다


github:

https://github.com/hyunsokstar/naver-add-prototype

 

back:

npm run start:dev

 

front:

npm run dev

 

controller 에서  http://localhost:8000/naver_add  요청을 받으면 네이버 광고에  api 요청(https://naver.github.io/searchad-apidoc/#/guides) 을 날려서 응답 받은걸 다시 프론트로 보내려고 하는데요

 

참고 문서는  https://ukcasso.tistory.com/99 이고 

 

컨트롤러와 서비스는 다음과 같습니다.

https://github.com/hyunsokstar/naver-add-prototype/blob/main/backend/src/naver_add/naver_add.controller.ts

https://github.com/hyunsokstar/naver-add-prototype/blob/main/backend/src/naver_add/naver_add.service.ts

 

그런데 헤더 설정이 잘못되어서인지

 

import { NaverAddService } from './naver_add.service';

import { SuccessInterceptor } from './../common/interceptors/success.interceptor';

import { Controller, Get, Req, UseInterceptors } from '@nestjs/common';

// import CryptoJS from "crypto-js";

import * as CryptoJS from 'crypto-js'


var method = "GET";var api_url = "/keywordstool";var timestamp = Date.now() + '';const accessKey = "01000000000f85a84ea950600f3a5a2214f5f379afa3f09898cbf7a1699007c1167fe2e247"var secretKey = "AQAAAAAPhahOqVBgDzpaIhT183mv52WgZFJyJCX8PE87IzXJwg==";
var method = "GET";var timestamp = Date.now() + '';var secretKey = "YOUR_SECRETKEY";var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);hmac.update(timestamp + '.' + method + '.' + api_url);var hash = hmac.finalize();hash.toString(CryptoJS.enc.Base64);



@Controller('naver_add')@UseInterceptors(SuccessInterceptor)export class NaverAddController {
    constructor(        private readonly naverAddService: NaverAddService    ) { }
    @Get()    getNaverAddInfo() {        const api_key = process.env.API_KEY;        const secret_key = process.env.SECRET_KEY;        const customer_id = process.env.CUSTOMER_ID;
        const options = {            url: 'https://api.naver.com/keywordstool?hintKeywords=' + "skilnote" + '&showDetail=1',            headers: {                'X-Timestamp': timestamp, 'X-API-KEY': api_key,                'X-API-SECRET': secret_key, 'X-CUSTOMER': customer_id, 'X-Signature': hash.toString(CryptoJS.enc.Base64)            }        };        // const result = this.naverAddService.getNaverAddInfo(options).subscribe(        //     res => {        //         console.log(res);        //     });
        const result = this.naverAddService.getNaverAddInfo(options).pipe().subscribe()
        console.log("result : ", result);        // return result    }
}

 

요청 자체는 성공으로 출력 되지만

 

 

콘솔에 이런 에러가 발생 합니다.

 

http://www.skilnote-for-starter.shop/wm/myshortcut/trouble-shotting/1

혹시 해결 방법 알려주시면 감사요 그리고 혹시 멘토링 같은건 안해주시나요 주말이든 주중이든 채팅이나 직접 만나서든 배우고 싶습니다.

ssr NestJS express nodejs mongodb

Answer 3

0

caput3545

안녕하세요 현석오님.
깃허브에 올려주신 코드와 올려주신 테스트 결과만으로 정확히 오류가 어디 있는지 확인하기 어렵습니다.

가장 크게 의심되는 부분은 api 호출 헤더를 작성해주는 부분에서, process.env.[KEY] 와 같은 형식으로 .env 파일에 있는 환경변수를 불러오는 과정에서 제대로 값이 불러와지지 않은 것 같습니다. 이 부분을 console.log로 한 번 확인해주시고, 그래도 해결되지 않는다면 다시 한 번 질문글로 작성해주시면 바로 다시 확인해보겠습니다. 감사합니다.

또한, API KEY와 SECRET KEY는 현석오님에게만 제공되는 키로, 공개된 웹에 해당 키를 노출시켰을 때 타인이 이를 악용할 수 있습니다. 질문글에서 해당 부분을 삭제하시고, 깃허브 레포지토리도 private으로 변경하시는 것을 추천드립니다.

0

hyunsokstar6698

http://www.skilnote-for-starter.shop/wm/myshortcut/naver-api-test/1
에서 봐주시면 감사하겠습니다.

 

0

amamov

안녕하세요 :)

사진이 안보이는데 다시 올려 주실 수 있나요???

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

80

1

DTO에 대한 질문

1

87

2

백엔드 MVC에서 View의 역할은 무엇인가요?

1

93

2

추가 업데이트 관련 건

0

90

2

nest js 버전문제

0

79

2

mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.

0

103

1

라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.

0

74

1

전체 고양이 조회 라우터 중 error.message 오류

0

67

1

캡슐화 추가 설명 중 단일책임원칙 관련 질문

0

104

0

42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결

0

82

1

채팅 이슈

0

133

1

모듈이 더 이상 지원하지 않는답니다

0

206

1

오류가 있습니다

0

106

1

import 에서 오류가 납니다

0

127

1

이런 오류가 나옵니다

0

100

1

에러가 발생합니다

0

109

1

프론트 에러 뜨는데 수정 안해주시나요

0

156

1

emit() broadcast.emit() 질문있습니다

0

101

1

서버연결이 안됩니다.

1

403

1

[PM2][ERROR] Command not found

0

520

1

S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.

0

248

1

error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)

0

601

1

jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.

0

322

2

Ec2로 안하시는 이유가 있을까요?

0

343

1