728x90
반응형
SMALL
구글 OAuth2 로그인 세팅
- 위 사이트로 이동 후 프로젝트 생성
- 만들기 선택
- API 및 서비스 선택
- 메뉴바에서 OAuth 동의 화면 선택
- 외부 선택
- 만들기 선택
- 앱 정보에서 : 앱 이름, 사용자 지원 이메일
- 승인된 도메인: 만약 배포를 했을 경우 배포된 url을 넣어주면 된다고 함 (localhost:8080 의 경우 안해주어도 된다)
- 개발자 연락처 정보 기입 후 저장 후 계속
- 저장 후 계속
- 이후로 다 저장 후 계속을 누르고 메뉴바에서 사용자 인증 정보로 이동
- 메뉴 바에서 사용자 인증 정보 선택
- 사용자 인증 정보 페이지에서 +사용자 인증 정보 만들기 선택
- 해당 화면에서 OAuth 클라이언트ID 선택
- 웹 애플리케이션 선택
- 현재 localhost:8080으로 되어있지만 배포를 했을 경우 해당 도메일을 사용해주면 됨
- 만들기 누르면
- 해당 클라이언트 ID와 보안 비밀번호는 Spring에서 사용
구글 OAuth2 To Spring Setting
- Java: 17
- Spring Boot: 3.2.0
- Gradle => oauth2 client + security 추가
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'org.springframework.boot:spring-boot-starter-security'
application.yml 파일
- Spring Security의 동작이나 관련 코드는 https://jk25.tistory.com/175 네이버 OAuth2에 있으니 생략.
GoogleUserInfo.java
public class GoogleUserInfo implements OAuth2UserInfo {
// ↓ loadUser() 로 받아온 OAuth2User.getAttributes() 결과를 담을거다
private Map<String, Object> attributes;
public GoogleUserInfo(Map<String, Object> attributes){
this.attributes = attributes;
}
@Override
public String getProvider() {
return "google";
}
@Override
public String getProviderId() {
return (String)attributes.get("sub");
}
@Override
public String getEmail() {
return (String)attributes.get("email");
}
@Override
public String getName() {
return (String)attributes.get("name");
}
}
- 위와 같이 설정 하고 사용 하였음
Youtube API 설정하는 방법
- 구글 콘솔 클라우드에서 API 및 서비스로 이동
- 위 검색창에서 Youtube 검색
- Youtube Data API v3 선택
- 사용 선택
- 해당 페이지가 보여진다면 성공
- 사용자 인증 정보 로 이동
- 사용자 인증 정보 만들기 선택
- API 키 선택
- 이제 해당 API키로 Youtube Data를 불러올 수 있다.
Youtube Data V3 API
- 해당 API 관련 공식문서
https://developers.google.com/youtube/v3/getting-started?hl=ko
- 밑에는 본인이 프로젝트를 진행하면서 사용한 API URL
- https://developers.google.com/youtube/v3/docs/search/list?hl=ko
- 그 다음 상당히 많은 쿼리 파라메터들이 있지만 본인이 선택한것 만 설명하도록 하겠음
maxResults = 반환하는 최대 항목 수 이며 가능한 값은 0~50, 기본 값은 5
q = 검색할 검색어를 지정하여 보내줌
Youtube API To Spring
application.yml
[도메인] YoutubeDTO.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class YoutubeDTO {
private int id;
private String keyword;
private String title;
private String videoId;
}
Service
@Service
public class NaverApiService {
public void saveYoutube1(){
RestTemplate restTemplate =new RestTemplate();
String url = "https://www.googleapis.com/youtube/v3/search?part=snippet&key=" + youtuekey
+ "&maxResults=10&q=개발자채용";
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
String resBody = response.getBody();
JSONObject jsonObject = new JSONObject(resBody);
JSONArray items = jsonObject.getJSONArray("items");
List<YoutubeDTO> YList = new ArrayList<>();
for (int i = 0; i < items.length(); i++) {
try {
JSONObject videoItem = (JSONObject) items.get(i);
JSONObject snippet = videoItem.getJSONObject("snippet");
String videoId = videoItem.getJSONObject("id").getString("videoId");
String title = snippet.getString("title");
YoutubeDTO youtubeDTO = new YoutubeDTO();
youtubeDTO.setKeyword("개발자채용");
youtubeDTO.setTitle(title);
youtubeDTO.setVideoId(videoId);
YList.add(youtubeDTO);
}catch(JSONException e){
}
}
for (YoutubeDTO youtubeDTO : YList) {
newsRepository.saveYoutue(youtubeDTO);
}
}
}
- 부가 설명
- URL은 part=snippet으로 key 와 maxResult는 10개 , 검색어는 개발자 채용
- YoutubeDTO 에 있는 videoId를 통해서 Youtube 영상을 불러 올 수 있음
- 따라서 어떤 키워드를 통해 받은 데이터인지, 그리고 그 데이터의 videoId만 저장
- https://jk25.tistory.com/175 이 포스팅에 youtube 관련 Repository 와 MyBatis Mapper 가 있는데 관련 설명은 생략
728x90
반응형
LIST
'Spring' 카테고리의 다른 글
[Spring] Gradle jar 빌드파일 만들기 (Feat.Intellij && Terminal) (0) | 2024.01.26 |
---|---|
[Spring] Spring Security + 카카오 OAuth2 로그인 구현 (2) | 2024.01.25 |
[Spring] 화상 채팅 구현하기 (ZEGOCLOUD API 활용 O, WebRTC X, Feat.Thymeleaf) (0) | 2024.01.25 |
[Spring] 스프링 스케쥴 작업 적용 방법 (Feat. @EnableScheduling, @Scheduled) (0) | 2024.01.24 |
[Spring] Naver OAuth2 로그인 + Spring Security + Naver 검색 API 활용 (1) | 2024.01.24 |