반응형
1. 다음 종속성을 pom.xml 파일에 추가합니다.
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-instagram</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-social-instagram</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
2. application.properties 파일에 Instagram Client ID 및 Client Secret을 추가합니다.
spring.social.instagram.app-id=YOUR_CLIENT_ID
spring.social.instagram.app-secret=YOUR_CLIENT_SECRET
3. Instagram Connect 컨트롤러 구현.
import org.springframework.social.connect.ConnectionFactoryLocator;
import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.connect.web.ConnectController;
import org.springframework.stereotype.Controller;
@Controller
public class InstagramConnectController extends ConnectController {
public InstagramConnectController(ConnectionFactoryLocator connectionFactoryLocator,
ConnectionRepository connectionRepository) {
super(connectionFactoryLocator, connectionRepository);
}
}
4. 사용자를 대신하여 사진을 게시할 수 있도록 애플리케이션 권한 부여
import org.springframework.social.connect.Connection;
import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.instagram.api.Instagram;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import java.io.IOException;
@Controller
public class InstagramPostController {
private final ConnectionRepository connectionRepository;
public InstagramPostController(ConnectionRepository connectionRepository) {
this.connectionRepository = connectionRepository;
}
@PostMapping("/post-instagram")
public String postInstagram(@RequestParam("image") MultipartFile image,
RedirectAttributes redirectAttributes) throws IOException {
Connection<Instagram> connection = connectionRepository.findPrimaryConnection(Instagram.class);
if (connection == null) {
redirectAttributes.addFlashAttribute("message", "Please connect to Instagram first");
return "redirect:/connect/instagram";
}
Instagram instagram = connection.getApi();
instagram.mediaOperations().upload(image.getBytes(), "Description");
redirectAttributes.addFlashAttribute("message", "Post Successful!");
return "redirect:/";
}
}
반응형
'Spring Boot' 카테고리의 다른 글
[Springboot + AWS S3] AWS S3 파일업로드 구현 (0) | 2023.02.08 |
---|---|
[Google API + Springboot] Gmail 록록 취득하기 (0) | 2023.02.08 |
[Springboot] Instagram 로그인 연동 구현(인스타그램 + java) (0) | 2023.02.08 |
[Springboot] Facebook 로그인 연동 구현 (0) | 2023.02.08 |
[Springboot] smtp email 보내기 구현 (0) | 2023.02.08 |