🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Swift

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

Q&A

1回答

645閲覧

SwifterのTwitter投稿ができない

qyoeku

総合スコア25

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Swift

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

0グッド

0クリップ

投稿2019/09/17 06:46

編集2019/09/17 06:49

iOSアプリでSwifterを使ったTwitter自動投稿機能をつけようとしているのですが、下のコードを実行すると、Twitterの認証画面に飛んだ後、認証ボタンを押すと「safari cannot open the page because the address is invalid.」というアラートが出てツイートができませんどうしてでるのか、また解決法などわかる方がいらっしゃれば教えていただきたいです。よろしくお願いします

swift

1func tweet(){ 2 let TWITTER_CONSUMER_KEY = "Cw3..." 3 let TWITTER_CONSUMER_SECRET = "g2wa..." 4 let tokenKey = self.appStatus.twitterTokenKey 5 let tokenSecret = self.appStatus.twitterTokenSecret 6 if tokenKey == nil || tokenSecret == nil { 7 let swifter = Swifter(consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET) 8 9 swifter.authorize( 10 withCallback: URL(string: "swifter-Cw3g...://")!, 11 presentingFrom: self, 12 success: { accessToken, response in 13 print(response) 14 print("success") 15          //実行されない 16 guard let accessToken = accessToken else { return } 17 self.appStatus.twitterTokenKey = accessToken.key 18 self.appStatus.twitterTokenSecret = accessToken.secret 19 self.tweet() 20 }, failure: { error in 21 print(error) 22 print("error") 23           //実行されない 24 }) 25 26 } else { 27 print("done") 28       //実行されない 29 let swifter = Swifter(consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET, oauthToken: tokenKey!, oauthTokenSecret: tokenSecret!) 30 Firestore.firestore().collection("user").document(UserDefaults.standard.string(forKey: "chatroom")!).getDocument{document,err in 31 swifter.postTweet(status: "質問です#(document!.data()!["work1"] ?? ""),#(document!.data()!["work2"] ?? ""),#(document!.data()!["work3"] ?? "")\n\n" + self.atext + "回答募集してます。よろしくお願いします????‍♂️\n\n#質問,#回答募集中,#センハナ(質問)", success: { response in 32 print(response) 33 }, failure: { error in 34 print(error) 35 })} 36 } 37 38}

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

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

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

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

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

guest

回答1

0

withCallback: URL(string: "swifter-Cw3g...://")!,

URLで自分のアプリが呼び出されるようにCustome URL Schemeを設定し、それを使ったURLをコールバックURLとして指定する必要があるかと思いますが、その辺(info.plistへの追記)は正しく行われているでしょうか?

参考:
https://qiita.com/noby111/items/532f3d806b19ab46433a#3-custom-url-scheme%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B

投稿2019/09/17 06:56

編集2019/09/17 06:58
takabosoft

総合スコア8356

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問