inflearn logo
강의

Khóa học

Chia sẻ kiến thức

NestJS phụ trợ vững chắc, từ cơ bản đến nâng cao

Phần giới thiệu

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

516

hyunsokstar6698

53 câu hỏi đã được viết

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

Câu trả lời 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

80

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