【iOS】TwitterKit가 아니고 「Swifter」로 Twitter 로그인한다
9550 단어 트위터iOSTwitterKitSwiftSwifter
Facebook의 iOS SDK는 안정적이고 사용하기 쉽습니다만, Twitter 공식이 일찌기 메인터넌스하고 있었다 TwitterKit (2018년 10월 공식 지원이 종료됨)
그래서 이번에는 iOS에서 Twitter 로그인을 할 때 TwitterKit보다 추천하는 Swifter를 소개합니다.
mattdonnelly/Swifter
설치
htps : //는 wks의 w㎉g. bgs포 t. 이 m/2016/09/와 ぇ에 ぃぃthーすぃf하여 r. HTML 의 기사가 상세합니다. cocoapods 등은 지원하지 않으므로 Embedded Binaries로 추가합시다.
Swifter에서 Twitter 로그인
미리 Twitter Developer에서 앱을 만들고 consumerKey와 consumerSecret을 가져옵니다.
ViewController.swiftimport Swifter
let swifter = Swifter(
consumerKey: "<--Twitter Developerで作ったconsumerKey-->",
consumerSecret: "<--Twitter Developerで作ったconsumerSecret-->"
)
swifter.authorize(
withCallback: "<-アプリに帰ってくるためのコールバックURL->",
presentingFrom: self,
success: { accessToken, response in
// このあとaccessToken使うよ
}, failure: { error in
print(error)
})
성공하면 accessToken을 얻을 수 있으므로 이것을 나중에 사용합니다. (다음 장)
safari에 날고 로그인 한 후 다시 이렇게이 AppDelegate에 다음과 같이 씁니다.
AppDelegate.swiftimport Swifter
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return Swifter.handleOpenURL(url, callbackURL: "<-アプリに帰ってくるためのコールバックURL->")
}
추가
로그인하는 화면의 ViewController를 SFSafariViewControllerDelegate를 준수하는 것을 잊지 마세요! 준수하면 앱 내에서 safari가 열립니다. (준수하지 않으면 외부 safari로 날아가서 a poor user experience라는 이유로 앱이 Apple에 거부되었습니다.)
ViewController.swiftimport SafariServices
class ViewController: UIViewController, SFSafariViewControllerDelegate {
}
accessToken 사용법
방금전의 authorize 메소드로 accessToken
를 취득할 수 있습니다. 이것은 String가 아니고, Credential.OAuthAccessToken
라고 하는 Swifter가 만들고 있는 형태로, 몇개의 파라미터를 가집니다.
이번에는 여기에서 key와 secret을 가져옵니다.
authorize 메소드의 success 중guard let accessToken = accessToken else {
return
}
let oAuthToken = accessToken.key
let secret = accessToken.secret
로컬로 사용
예를 들면 로컬에서 이대로 Swifter의 기능인 Twitter 투고를 하고 싶은 경우는, 다음으로부터 로그인 없이 할 수 있도록, 이 accessToken.key
와 accessToken.secret
를 UserDefaults등에 넣어 둡니다.
그런 다음 다음과 같이 swifter를 init하여 사용할 수 있습니다.
let swifter = Swifter(
consumerKey: "<--Twitter Developerで作ったconsumerKey-->",
consumerSecret: "<--Twitter Developerで作ったconsumerSecret-->",
oauthToken: oAuthToken, //ローカルに保存していたやつ
oauthTokenSecret: secret //ローカルに保存していたやつ
)
swifter.postTweet(status: shareText, success: { status in
}, failure: { error in
})
Firebase로 로그인
FirebaseAuth로 로그인하려면 FirebaseAuth TwitterAuthProvider.credential
를 만들어 로그인할 수 있습니다.
import Firebase
let credential = TwitterAuthProvider.credential(
withToken: oAuthToken,
secret: secret
)
Auth.auth().signIn(with: credential, completion: { (authResult, error) in
})
Firebase 공식 문서 에서는, twitterKit로 이 authToken
와 secret
를 취득하고 있습니다만, Swifter로 취득한 것을 여기에 넣으면 나머지는 같은 순서로 갈 수 있습니다.
TwitterKit과의 차이
TwitterKit은 Twitter 네이티브 앱이 있는 경우 앱에 날아 인증합니다. Swifter의 경우 앱이 있어도 Safari를 시작하고 인증합니다.
또, TwitterKit의 Twitter 투고는 전용의 ViewController를 낼 필요가 있습니다만, Swifter라면 코드만으로 완결합니다.
이상입니다. 자세한 것은, mattdonnelly/Swifter 의 리포지토리의 샘플 코드나 Readme에.
관련 링크
htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / 맞는 th / 이오 s / 라고 r-ㅉ 긴? hl = 그럼
htps : //는 wks의 w㎉g. bgs포 t. 이 m/2016/09/와 ぇ에 ぃぃthーすぃf하여 r. HTML
htps : // 기주 b. 코 m / t t don ly / su f r
Reference
이 문제에 관하여(【iOS】TwitterKit가 아니고 「Swifter」로 Twitter 로그인한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kboy/items/c83a0505d12cc8e7d4b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import Swifter
let swifter = Swifter(
consumerKey: "<--Twitter Developerで作ったconsumerKey-->",
consumerSecret: "<--Twitter Developerで作ったconsumerSecret-->"
)
swifter.authorize(
withCallback: "<-アプリに帰ってくるためのコールバックURL->",
presentingFrom: self,
success: { accessToken, response in
// このあとaccessToken使うよ
}, failure: { error in
print(error)
})
import Swifter
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return Swifter.handleOpenURL(url, callbackURL: "<-アプリに帰ってくるためのコールバックURL->")
}
import SafariServices
class ViewController: UIViewController, SFSafariViewControllerDelegate {
}
방금전의 authorize 메소드로
accessToken
를 취득할 수 있습니다. 이것은 String가 아니고, Credential.OAuthAccessToken
라고 하는 Swifter가 만들고 있는 형태로, 몇개의 파라미터를 가집니다.이번에는 여기에서 key와 secret을 가져옵니다.
authorize 메소드의 success 중
guard let accessToken = accessToken else {
return
}
let oAuthToken = accessToken.key
let secret = accessToken.secret
로컬로 사용
예를 들면 로컬에서 이대로 Swifter의 기능인 Twitter 투고를 하고 싶은 경우는, 다음으로부터 로그인 없이 할 수 있도록, 이
accessToken.key
와 accessToken.secret
를 UserDefaults등에 넣어 둡니다.그런 다음 다음과 같이 swifter를 init하여 사용할 수 있습니다.
let swifter = Swifter(
consumerKey: "<--Twitter Developerで作ったconsumerKey-->",
consumerSecret: "<--Twitter Developerで作ったconsumerSecret-->",
oauthToken: oAuthToken, //ローカルに保存していたやつ
oauthTokenSecret: secret //ローカルに保存していたやつ
)
swifter.postTweet(status: shareText, success: { status in
}, failure: { error in
})
Firebase로 로그인
FirebaseAuth로 로그인하려면 FirebaseAuth
TwitterAuthProvider.credential
를 만들어 로그인할 수 있습니다.import Firebase
let credential = TwitterAuthProvider.credential(
withToken: oAuthToken,
secret: secret
)
Auth.auth().signIn(with: credential, completion: { (authResult, error) in
})
Firebase 공식 문서 에서는, twitterKit로 이
authToken
와 secret
를 취득하고 있습니다만, Swifter로 취득한 것을 여기에 넣으면 나머지는 같은 순서로 갈 수 있습니다.TwitterKit과의 차이
TwitterKit은 Twitter 네이티브 앱이 있는 경우 앱에 날아 인증합니다. Swifter의 경우 앱이 있어도 Safari를 시작하고 인증합니다.
또, TwitterKit의 Twitter 투고는 전용의 ViewController를 낼 필요가 있습니다만, Swifter라면 코드만으로 완결합니다.
이상입니다. 자세한 것은, mattdonnelly/Swifter 의 리포지토리의 샘플 코드나 Readme에.
관련 링크
htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / 맞는 th / 이오 s / 라고 r-ㅉ 긴? hl = 그럼
htps : //는 wks의 w㎉g. bgs포 t. 이 m/2016/09/와 ぇ에 ぃぃthーすぃf하여 r. HTML
htps : // 기주 b. 코 m / t t don ly / su f r
Reference
이 문제에 관하여(【iOS】TwitterKit가 아니고 「Swifter」로 Twitter 로그인한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kboy/items/c83a0505d12cc8e7d4b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / 맞는 th / 이오 s / 라고 r-ㅉ 긴? hl = 그럼
htps : //는 wks의 w㎉g. bgs포 t. 이 m/2016/09/와 ぇ에 ぃぃthーすぃf하여 r. HTML
htps : // 기주 b. 코 m / t t don ly / su f r
Reference
이 문제에 관하여(【iOS】TwitterKit가 아니고 「Swifter」로 Twitter 로그인한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kboy/items/c83a0505d12cc8e7d4b9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)