Swift : macOS에서 Swifter를 사용하여 Twitter 인증

9460 단어 트위터Swift
이소기 요점만 정리합니다.

Swifter



mattdonnelly/Swifter
Twitter에 대한 OAuth 인증을 좋은 느낌으로 해주는 iOS/macOS 용 라이브러리입니다.

방법



1. Swifter 도입


  • 먼저 GitHub 저장소로 날아 프로젝트를 다운로드하고 SwifterMac를 빌드하여 프레임 워크를 만듭니다.
  • 자신의 프로젝트의 TARGETSFrameworks, Libraries, and Embedded Content에 드래그 앤 드롭하여 추가한다.
  • 소스의 필요한 곳에서 import SwifterMac

  • CocoaPods와 Carthage의 방법을 확인하십시오.

    2. App Sandbox 설정


    Signing & Capabilities > App Sandbox > Network > Outgoing Connections (client) 에 체크하기

    3. Twitter Apps에서 앱을 등록하고 Key를 얻을 수 있습니다.





    4. Twitter Apps에서 Callback URL 설정


    swifter-[生成されたConsumer API Key]://CallBack URL로 추가

    5. URL Schemes 추가


    TARGETS > Info > URL Types에 URLSchemes를 추가한다.swifter-[生成されたConsumer API Key]를 입력합니다.


    6. AppDelegate.swift 구현



    AppDelegate.swift
    import Cocoa
    import SwifterMac
    
    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
    
        func applicationDidFinishLaunching(_ aNotification: Notification) {
            NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleEvent),
                                                         forEventClass: AEEventClass(kInternetEventClass),
                                                         andEventID: AEEventID(kAEGetURL))
            LSSetDefaultHandlerForURLScheme("swifter" as CFString, Bundle.main.bundleIdentifier! as CFString)
        }
    
        func applicationWillTerminate(_ aNotification: Notification) {
            // Insert code here to tear down your application
        }
    
        func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
            return true
        }
    
        @objc func handleEvent(_ event: NSAppleEventDescriptor!, withReplyEvent: NSAppleEventDescriptor!) {
            guard let callbackUrl = URL(string: "swifter-[生成されたConsumer API Key]://") else { return }
            guard let urlString = event.paramDescriptor(forKeyword: AEKeyword(keyDirectObject))?.stringValue else { return }
            guard let url = URL(string: urlString) else { return }
            Swifter.handleOpenURL(url, callbackURL: callbackUrl)
        }
    
    }
    

    7. ViewController 구현



    ViewController.swift
    import Cocoa
    import Accounts
    import SwifterMac
    
    class ViewController: NSViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            let swifter = Swifter(consumerKey: "[生成されたConsumer API Key]",
                                  consumerSecret: "[生成されたConsumer Secret Key]")
            let callbackUrl = URL(string: "swifter-[生成されたConsumer API Key]://")!
            swifter.authorize(withCallback: callbackUrl, success: { (_, _) in
                Swift.print("Success Authorizing")
                // この後はもう好き放題やってケロ
            }) { (error) in
                Swift.print(error.localizedDescription)
            }
        }
    
    }
    

    어쩌면 이것으로 갈 수있을 것입니다.

    좋은 웹페이지 즐겨찾기