iOS 어플리케이션 및 Twitter 제휴
14657 단어 SwiftTwitterKitiOS
개시하다
Social.프레임워크나 UIACtivity ViewController가 사용할 수 없기 때문에 트위터 Kit3입니다.4.0 디저트를 만들어 봤어요.
프로그램
TwitterKit 설치
이번에 코코팟을 사용했어요.
Podfile은
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'twitterKitSmp' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for twitterKitSmp
pod 'TwitterKit' <-- 追加
end
라는 느낌을 받았다.프로젝트 디렉토리에서
% pod init
<Podfileが作成されるので、pod 'TwitterKit'を追加>
% pod install
지금까지 트위터 키트 설치였습니다.프로젝트 설정
info.plist에 다음 내용을 추가합니다.
<key>CFBundleURLTypes</key>
<array>
<dict>
<!-- 追加ここから -->
<key>CFBundleURLSchemes</key>
<array>
<string>twitterkit-{CONSUMERKEY}</string>
</array>
<!-- 追加ここまで -->
</dict>
</array>
<!-- 追加ここから -->
<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitter</string>
<string>twitterauth</string>
</array>
<!-- 追加ここまで -->
CFBundleURLTypes.CFBundleURLSchemes 및 LS Application QueriesSchomes를 추가합니다.CFBundleURLSchemes는 트위터 API 측면의 Callback URL에도 추가로 기재한다.
인증부 설치
우선 트위터 키트의 초기 설정 등을 진행한다.
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// 1. TwitterAPIのAPI keyとAPI secret keyを設定
TWTRTwitter.sharedInstance().start(withConsumerKey: "{CONSUMERKEY}",
consumerSecret: "{CONSUMERSECRET}")
return true
}
func application(_ app: UIApplication, open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
// 2. Twitter認証からのコールバック
if TWTRTwitter.sharedInstance().application(app, open: url, options: options) {
return true
}
return false
}
ViewController.swift
func sndTweet() {
// 1.ログインされているか?
if TWTRTwitter.sharedInstance().sessionStore.hasLoggedInUsers() {
// 2.ツィート開始
sndTweetExec()
} else {
// 3.認証開始
TWTRTwitter.sharedInstance().logIn(with: self, completion: { (session, error) in
if let sess = session {
print("Signed in as \(sess.userName)")
// 4.ツィート開始
self.sndTweetExec()
} else {
// 5.認証失敗
print("login error: \(error?.localizedDescription)")
}
})
}
}
튜브 집행부 설치
카터는 트위터 키트의 T WTR Composer View Controller를 사용했다.
또한 설치할 때tult를 실행한 후 경보를 보내야 한다.
ViewController.swift
func sndTweetExec() {
let str:String = "サンプルツィート"
// 1.コントローラー初期化
let comp = TWTRComposerViewController.init(initialText: str, image: nil, videoData: nil)
// 2.デレゲート
comp.delegate = self
// 3.コントローラ表示
present(comp, animated: true, completion: nil)
}
ViewController.swift
extension ViewController: TWTRComposerViewControllerDelegate {
// キャンセル時
func composerDidCancel(_ controller: TWTRComposerViewController) {
print("Cancel")
}
// ツィート失敗時
func composerDidFail(_ controller: TWTRComposerViewController, withError error: Error) {
print("Error")
let store = TWTRTwitter.sharedInstance().sessionStore
if let userID = store.session()?.userID {
store.logOutUserID(userID)
}
dismiss(animated: false, completion: nil)
DispatchQueue.main.async {
self.tweetAlert(memo:"Twitterに投稿に失敗しました")
}
}
// ツィート成功時
func composerDidSucceed(_ controller: TWTRComposerViewController, with tweet: TWTRTweet) {
print("Ok")
dismiss(animated: false, completion: nil)
DispatchQueue.main.async {
self.tweetAlert(memo: "Twitterに投稿しました。\nご協力ありがとうございます。")
}
}
}
이번에는 Twit를 실행한 후에 경보를 표시하려고 하기 때문에dere 울타리 방법에서dismiss () 를 호출하여 View를 닫습니다.DispatchQueue.main.ASync는 필요 없을지도 모르지만 혹시 모르니까...
샘플 응용 프로그램
이런 느낌의 앱을 사용해 봤어요.
소스 코드
소스를 하나 넣었다.
총결산
이상에서 대강 한 차례 총결하여 마음에 두는 곳으로 삼았다
나는 지정된 방법이 있는 것 같았지만 찾지 못했다.
할 수 있을 것 같지만 이번엔 못 했어요.
다음에 기회가 된다면 다시 시도해 보자.
iOS 11 지원 트위터 기고(Social framework→Twitter Kit)
Reference
이 문제에 관하여(iOS 어플리케이션 및 Twitter 제휴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kingconyd/items/549e53d35fc28dc88794텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)