質問編集履歴

6

質問に追記

2022/02/23 15:03

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -150,6 +150,43 @@
150
150
 
151
151
  PostmanでAPIキーなどを入力して、正しいレスポンスを得られた時のリクエストヘッダーを参考にどこが悪いのか探ったのですが、どうもSyncerのPHPの例文で言う所の「$signature」、つまり署名(?)がPostmanで得られたものよりも倍近く長いのがいけないのではないかと言うところまでは分かったのですが、どのように直せば良いのかが分からずにいます。
152
152
 
153
+
154
+ ・・・追記
155
+ OAuthSwiftを使うと良いと言う修正依頼を頂いたので試してみたのですが、
156
+ ```Swift
157
+
158
+ import UIKit
159
+ import OAuthSwift
160
+
161
+ class ViewController: UIViewController {
162
+ // create an instance and retain it
163
+ var oauthswift = OAuth1Swift(
164
+ consumerKey: "xxxxxxxxxxxxxxxxxxxxxxxxx",
165
+ consumerSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
166
+ requestTokenUrl: "https://api.twitter.com/oauth/request_token",
167
+ authorizeUrl: "https://api.twitter.com/oauth/authorize",
168
+ accessTokenUrl: "https://api.twitter.com/oauth/access_token"
169
+ )
170
+
171
+ override func viewDidLoad() {
172
+ super.viewDidLoad()
173
+ // authorize
174
+ _ = oauthswift.authorize(
175
+ withCallbackURL: "swifter-xxxxxxxxxxxxxxxxxxxxxxxxx://") { result in
176
+ switch result {
177
+ case .success(let (credential, _, _)):
178
+ print(credential.oauthToken)
179
+ print(credential.oauthTokenSecret)
180
+ // Do your request
181
+ case .failure(let error):
182
+ print(error.localizedDescription)
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+ ・・・でログインできたのですが、コンソールには何もprintされず、リクエストトークン もリクエストトークン シークレットも得られない状態です。ちなみにログイン画面はSafariになっています。
189
+
153
190
  ### 補足情報(FW/ツールのバージョンなど)
154
191
 
155
192
  ここにより詳細な情報を記載してください。

5

質問を修正

2022/02/23 02:55

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```Swift
28
28
  import UIKit
29
- import CommonCrypto
29
+ import CommonCrypto// <------ HMAC-SHA1方式のハッシュ値を作る際に使いました。
30
30
 
31
31
  class ViewController: UIViewController {
32
32
 

4

質問を微修正

2022/02/22 08:19

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -146,7 +146,7 @@
146
146
 
147
147
  SyncerJP(https://syncer.jp/Web/API/Twitter/REST_API/#section-2-3 )というサイトを参考にしながらコードを書いてみたのですが、例文がSwiftではなくPHPで、PHPはサッパリ分からないためどこをどう直せば良いか分かりません。
148
148
 
149
- 他にも「TwitterAPI ツイート 投稿」などで検索したのですが、フレームワークを使っている例文が多く、またフレームワークを使っていない例文あるにはあったのですが、古いせいか参考にはなりませんでした。
149
+ 他にも「TwitterAPI ツイート 投稿」などで検索したのですが、フレームワークを使っている例文が多く、またその記事も古いせいか参考にはなりませんでした。
150
150
 
151
151
  PostmanでAPIキーなどを入力して、正しいレスポンスを得られた時のリクエストヘッダーを参考にどこが悪いのか探ったのですが、どうもSyncerのPHPの例文で言う所の「$signature」、つまり署名(?)がPostmanで得られたものよりも倍近く長いのがいけないのではないかと言うところまでは分かったのですが、どのように直せば良いのかが分からずにいます。
152
152
 

3

質問を微修正

2022/02/22 08:07

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
  ### 試したこと
145
145
  ここに問題に対して試したことを記載してください。
146
146
 
147
- SyncerJP(https://syncer.jp/Web/API/Twitter/REST_API/#section-2-3)というサイトを参考にしながらコードを書いてみたのですが、例文がSwiftではなくPHPで、PHPはサッパリ分からないためどこをどう直せば良いか分かりません。
147
+ SyncerJP(https://syncer.jp/Web/API/Twitter/REST_API/#section-2-3 )というサイトを参考にしながらコードを書いてみたのですが、例文がSwiftではなくPHPで、PHPはサッパリ分からないためどこをどう直せば良いか分かりません。
148
148
 
149
149
  他にも「TwitterAPI ツイート 投稿」などで検索したのですが、フレームワークを使っている例文が多く、またフレームワークを使っていない例文もあるにはあったのですが、古いせいか参考にはなりませんでした。
150
150
 

2

質問を微修正

2022/02/22 08:05

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -115,9 +115,6 @@
115
115
  task.resume()
116
116
  }
117
117
 
118
- // func urlEncode(string: String) -> String {
119
- // return string.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
120
- // }
121
118
  func urlEncode(beforeText: String) -> String {
122
119
  // RFC3986 に準拠
123
120
  // 変換対象外とする文字列(英数字と-._~)

1

質問を微修正

2022/02/22 08:01

投稿

tmyk1979
tmyk1979

スコア145

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ Swiftを勉強し始めて3ヶ月目に入ったところの初心者です。
4
+
3
- フレームワーク・ライブラリに頼らずユーザーに認証してもらいユーザーがツイートできるアプリを作ろうとしています。
5
+ フレームワーク・ライブラリに頼らずTwitterAPIを叩いてユーザーに認証してもらいユーザーがツイートできるTwitterクライントアプリを作ろうとしています。
4
6
 
5
7
  ここに質問の内容を詳しく書いてください。
6
8
  (例)PHP(CakePHP)で●●なシステムを作っています。