Reddit API returns 401(使用 OAuthSwift)
Reddit API returns 401 (using OAuthSwift)
所以我正在尝试让我的示例 reddit 应用程序与 OAuthSwift 一起工作
我从 reddit
得到 401
和 Unauthorized
oauthswift = OAuth2Swift(
consumerKey: "reddit_Client_id",
consumerSecret: "",
authorizeUrl: "https://www.reddit.com/api/v1/authorize",
accessTokenUrl: "https://www.reddit.com/api/v1/access_token",
responseType: "code"
)
guard let rwURL = URL(string: "redditTestApp://oauth-callback") else { return }
handle = oauthswift!.authorize(
withCallbackURL: rwURL,
scope: "identity read", state:"reddit") { result in
switch result {
case .success(let (credential, response, parameters)):
print(credential.oauthToken)
// Do your request
case .failure(let error):
print(error.description)
}
}
我有点迷失在这里我所缺少的东西。我想我已经传递了所有参数,但不确定还剩下什么以获得 unauthorized
响应。
所以把它留在这里以防将来有人需要帮助。
问题是在检索访问令牌期间,reddit 需要使用 http 基本身份验证的授权 header。
OAuthSwift 库提供了一种简单的方法,您只需添加
oauthswift?.accessTokenBasicAuthentification = true
大功告成。
非常感谢!除了那条线
之外,我还因为同样的问题而失去理智
oauth.accessTokenBasicAuthentification = true
在授权之前(withCallbackURL...,您还需要将您的 client_id 作为用户和空字符串作为密码添加到授权参数中
oauthswift.authorize(withCallbackURL: redirectURL,
scope: "identity read",
state: "reddit",
parameters: ["user": "your_key", "password": "", "duration": "permanent or temporary", "grant_type": "authorization_code"])
所以我正在尝试让我的示例 reddit 应用程序与 OAuthSwift 一起工作
我从 reddit
得到401
和 Unauthorized
oauthswift = OAuth2Swift(
consumerKey: "reddit_Client_id",
consumerSecret: "",
authorizeUrl: "https://www.reddit.com/api/v1/authorize",
accessTokenUrl: "https://www.reddit.com/api/v1/access_token",
responseType: "code"
)
guard let rwURL = URL(string: "redditTestApp://oauth-callback") else { return }
handle = oauthswift!.authorize(
withCallbackURL: rwURL,
scope: "identity read", state:"reddit") { result in
switch result {
case .success(let (credential, response, parameters)):
print(credential.oauthToken)
// Do your request
case .failure(let error):
print(error.description)
}
}
我有点迷失在这里我所缺少的东西。我想我已经传递了所有参数,但不确定还剩下什么以获得 unauthorized
响应。
所以把它留在这里以防将来有人需要帮助。
问题是在检索访问令牌期间,reddit 需要使用 http 基本身份验证的授权 header。
OAuthSwift 库提供了一种简单的方法,您只需添加
oauthswift?.accessTokenBasicAuthentification = true
大功告成。
非常感谢!除了那条线
之外,我还因为同样的问题而失去理智oauth.accessTokenBasicAuthentification = true
在授权之前(withCallbackURL...,您还需要将您的 client_id 作为用户和空字符串作为密码添加到授权参数中
oauthswift.authorize(withCallbackURL: redirectURL,
scope: "identity read",
state: "reddit",
parameters: ["user": "your_key", "password": "", "duration": "permanent or temporary", "grant_type": "authorization_code"])