강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hyunsokstar6698
hyunsokstar6698

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

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

Phần giới thiệu

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

Viết

·

504

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

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

ssrNestJSexpressnodejsmongodb

Câu trả lời 3

0

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

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

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

0

hyunsokstar6698님의 프로필 이미지
hyunsokstar6698
Người đặt câu hỏi

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

 

0

amamov님의 프로필 이미지
amamov
Người chia sẻ kiến thức

안녕하세요 :)

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

Hình ảnh hồ sơ của hyunsokstar6698
hyunsokstar6698

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

Đặt câu hỏi