[iOS] 인스타그램 스토리 연동하기

ohtt-iOS·2020년 12월 3일
1

iOS

목록 보기
4/24
post-thumbnail
post-custom-banner

👀 인스타그램 스토리 연동하기

앱 내에서 어떤 사진을 인스타그램 스토리에 바로 올릴 수 있는 기능을 구현해보도록 하겠습니다 :)




우선 스토리보드에 이미지 한장과 버튼 하나를 넣어놓도록 하겠습니다.
여기서 버튼을 누르면 저 이미지가 인스타그램 스토리에 공유되는 방식입니다 :)



인스타그램 스토리 share 작동 순서

  1. 앱이 Instagram의 맞춤 URL 스키마를 찾을 수 있는지 확인
  2. 사용자의 디바이스에 인스타그램이 깔려있는지 확인
  3. 인스타그램 포맷에 맞춰서 UIPasteboard에 사용할 아이템을 넣는다
  4. 인스타그램을 실행시키고 이미지를 붙여넣는다

🛠 Info.plist

Info.plist에서 위와 같이
인스타그램 custom URL 스키마를 화이트리스트에 추가해줍니다.

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var sharingImageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    @IBAction func shareToInstaStories(_ sender: Any) {
        if let storiesUrl = URL(string: "instagram-stories://share") {
            if UIApplication.shared.canOpenURL(storiesUrl) {
            // 위의 sharingImageView의 image를 image에 저장
                guard let image = sharingImageView.image else { return }
                // 지원되는 형식에는 JPG,PNG 가 있다.
                guard let imageData = image.pngData() else { return }
                let pasteboardItems: [String: Any] = [
                    "com.instagram.sharedSticker.stickerImage": imageData,
                    // 배경 값 : 두 값이 다르면 그래디언트를 생성
                    "com.instagram.sharedSticker.backgroundTopColor": "#636e72",
                    "com.instagram.sharedSticker.backgroundBottomColor": "#b2bec3"
                ]
                let pasteboardOptions = [
                    UIPasteboard.OptionsKey.expirationDate: Date().addingTimeInterval(300)
                ]
                UIPasteboard.general.setItems([pasteboardItems], options: pasteboardOptions)
                UIApplication.shared.open(storiesUrl, options: [:], completionHandler: nil)
            } else {
                print("User doesn't have instagram on their device.")
            }
        }
    }
}



📱 실행화면

아이패드로 실행시켜 다소 화면이 작은 점 이해 부탁드려요!!!



📒 참고자료

유튜브영상
공식 문서

profile
오뜨 삽질 🔨 블로그
post-custom-banner

0개의 댓글