質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

889閲覧

TwitterKitで自作のアプリとTwitterと連携してツイートをしたいのですが、コンポーザが出てきません。

tmyk1979

総合スコア145

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/11/23 08:37

前提・実現したいこと

TwitterKitで自作のアプリからツイートをしたいです。
アプリは今のところ、画面中央にツイートボタンを配置しただけのものです。

ここに質問の内容を詳しく書いてください。

Swiftを勉強中で、Xcode(Ver11.6)を使ってアプリを作っています。
今のところ画面中央にツイートボタンを配置しただけのものです。
実機(iPhoneSE iOS13.6)でテストしたところ、ツイートボタンをタップすると「APPによるアカウントへのアクセスを許可しますか?」という画面になり、「アプリにアクセスを許可」が画面下の方に現れるので、そのボタンをタップするとツイッターが立ち上がり、タイムラインの画面になるのですが、コンポーザーが立ち上がってツイートできるようにはなりません。

https://qiita.com/naoto0n2/items/8d80dde2584d970317e7

上記のサイト記事をほぼそのままコピペして使っているのですが、「基本的に以下の実装だけでTwitterKitがよしなにしてくれます(ログイン周りも含め)」と書いてあるところ、ログインだけでコンポーザーが立ち上がらないという状況です。

下の方に私のViewControllerのコードを貼り付けます。

発生している問題・エラーメッセージ

エラーメッセージは出ておりません。 「Private submodule'TwitterCore.Priate'in private module map, expected top-level-module」という警告が出ています。

該当のソースコード

Swift

1import UIKit 2import TwitterKit 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view. 9 } 10 11 @IBAction func loginButton(_ sender: Any) { 12 13 let composer = TWTRComposer() 14 composer.setText("just setting up my Twitter Kit") 15 composer.show(from: self, completion: { result in 16 if (result == .done) { 17 print("Successfully composed Tweet") 18 } else { 19 print("Cancelled composing") 20 } 21 }) 22 } 23} 24 25

試したこと

ネットで色々な記事に載っているコードを試してみましたが、どれもうまく行っていません。
Swifterも試したのですが、Twitterとの連携までは辿り着けていません。

補足情報(FW/ツールのバージョンなど)

Xcode11.6
iPhoneSE(iOS13.6)

Xcodeとiphoneは現状、Macが古いもので最新のXcodeを入れられず、また実機で試せるのがこの組み合わせしか無いため、結構古めです。

Swiftは5.2で書くべきなのかなと思っていますが、まだ勉強し始めたばかりという事もあり自分がバージョンいくつのもので書いているのか、また実際はどのバージョンで書くべきなのかも自分では分かっていません。バージョンによる違いも分かっていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/11/23 18:46

TwitterKit はサポート終了してるようですね。Swifter の方が何とかなりそうな気がしますが、どの辺がうまくいきませんか?
tmyk1979

2021/11/24 02:40

お返事ありがとうございます。Swifterだとauthorize(withCallback:presentingFrom:forceLogin:safariDelegate:success:failure:)' was deprecated in iOS 13.0というエラーが出てしまいます。authorize()が悪いというよりsafariDelegateがよろしくないようなのですが、Swifterの方が良いとの事でしたら別に質問を立てようと思います。
guest

回答1

0

自己解決

hoshi-takanori様、回答というか修正依頼というか、アドバイスありがとうございました。
TwitterKitはサポート終了しているのと事で、私もSwifterを試したのですが、Swifterではauthorizeがうまくいかず、TwitterKitとSwifterのどちらで頑張ってみるか迷っておりました。

Swifterの方が何とかなりそうとの事ですので、Swifterの事で別に質問をたてようと思います。
重ねて、ありがとうございました。

Swifterで
https://qiita.com/ninoko1995/items/43555118b85f53b5a246
のページの内容を参考に再度やってみたらツイートまではできました。
これまではTwitterKitでダメならSwifterに、SwifterでダメならまたTwitterKitでやり直すという事を繰り返していたので、Twitter DevelopersのcallbackURLの欄を修正し忘れたままアレコレやっていたためSwifterではうまく行かなかったのかもしれません。

また、TwitterKitではcallbackURLに自分で作ったブログのURLを入れていたのですが、Swifterでは「swifter-{consumer-Key}://」でやらないとうまく行かないようです。

まだコンポーザーを出現させてツイートするという所まではできていませんが、ひとまずツイートするという事はできたので、引き続き頑張ってみて、どうしてもできないようならまた改めて質問を立てる事にします。

質問を見てくれた皆様、答えてくださったhoshi-takanori様、ありがとうございました。

投稿2021/11/24 02:46

編集2021/11/24 06:01
tmyk1979

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tmyk1979

2021/11/24 05:52

hoshi-takanori様ですね、お名前を誤入力してしまいました。失礼しました。
tmyk1979

2021/11/24 06:02

編集ボタンから修正できたので修正させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問