Stub out Twitter auth.
This commit is contained in:
parent
266c28d9be
commit
f5aac9516f
@ -7,6 +7,9 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import AppKit
|
import AppKit
|
||||||
|
import AuthenticationServices
|
||||||
|
import Secrets
|
||||||
|
import OAuthSwift
|
||||||
import FeedProvider
|
import FeedProvider
|
||||||
|
|
||||||
class ExtensionPointAddViewController: NSViewController {
|
class ExtensionPointAddViewController: NSViewController {
|
||||||
@ -16,6 +19,9 @@ class ExtensionPointAddViewController: NSViewController {
|
|||||||
private var availableExtensionPointTypes = [ExtensionPointType]()
|
private var availableExtensionPointTypes = [ExtensionPointType]()
|
||||||
private var extensionPointAddWindowController: NSWindowController?
|
private var extensionPointAddWindowController: NSWindowController?
|
||||||
|
|
||||||
|
private let callbackURL = URL(string: "vincodennw://")!
|
||||||
|
private var oauth: OAuthSwift?
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
super.init(nibName: "ExtensionPointAdd", bundle: nil)
|
super.init(nibName: "ExtensionPointAdd", bundle: nil)
|
||||||
}
|
}
|
||||||
@ -50,8 +56,6 @@ extension ExtensionPointAddViewController: NSTableViewDataSource {
|
|||||||
|
|
||||||
extension ExtensionPointAddViewController: NSTableViewDelegate {
|
extension ExtensionPointAddViewController: NSTableViewDelegate {
|
||||||
|
|
||||||
private static let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "AccountCell")
|
|
||||||
|
|
||||||
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
|
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
|
||||||
|
|
||||||
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? ExtensionPointAddTableCellView {
|
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "Cell"), owner: nil) as? ExtensionPointAddTableCellView {
|
||||||
@ -73,12 +77,42 @@ extension ExtensionPointAddViewController: NSTableViewDelegate {
|
|||||||
let extensionPointType = availableExtensionPointTypes[selectedRow]
|
let extensionPointType = availableExtensionPointTypes[selectedRow]
|
||||||
switch extensionPointType {
|
switch extensionPointType {
|
||||||
case .marsEdit, .microblog:
|
case .marsEdit, .microblog:
|
||||||
|
|
||||||
let windowController = ExtensionPointEnableBasicWindowController()
|
let windowController = ExtensionPointEnableBasicWindowController()
|
||||||
windowController.extensionPointType = extensionPointType
|
windowController.extensionPointType = extensionPointType
|
||||||
windowController.runSheetOnWindow(self.view.window!)
|
windowController.runSheetOnWindow(self.view.window!)
|
||||||
extensionPointAddWindowController = windowController
|
extensionPointAddWindowController = windowController
|
||||||
default:
|
|
||||||
break
|
case .twitter:
|
||||||
|
|
||||||
|
let oauth = OAuth1Swift(
|
||||||
|
consumerKey: Secrets.twitterConsumerKey,
|
||||||
|
consumerSecret: Secrets.twitterConsumerSecret,
|
||||||
|
requestTokenUrl: "https://api.twitter.com/oauth/request_token",
|
||||||
|
authorizeUrl: "https://api.twitter.com/oauth/authorize",
|
||||||
|
accessTokenUrl: "https://api.twitter.com/oauth/access_token"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.oauth = oauth
|
||||||
|
oauth.authorizeURLHandler = self
|
||||||
|
|
||||||
|
oauth.authorize(withCallbackURL: callbackURL) { result in
|
||||||
|
switch result {
|
||||||
|
case .success(let tokenSuccess):
|
||||||
|
// let token = tokenSuccess.credential.oauthToken
|
||||||
|
// let secret = tokenSuccess.credential.oauthTokenSecret
|
||||||
|
let screenName = tokenSuccess.parameters["screen_name"] as? String ?? ""
|
||||||
|
|
||||||
|
print("******************* \(screenName)")
|
||||||
|
|
||||||
|
case .failure(let oauthSwiftError):
|
||||||
|
NSApplication.shared.presentError(oauthSwiftError)
|
||||||
|
}
|
||||||
|
|
||||||
|
self.oauth?.cancel()
|
||||||
|
self.oauth = nil
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tableView.selectRowIndexes([], byExtendingSelection: false)
|
tableView.selectRowIndexes([], byExtendingSelection: false)
|
||||||
@ -87,22 +121,37 @@ extension ExtensionPointAddViewController: NSTableViewDelegate {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: OAuthAccountAuthorizationOperationDelegate
|
extension ExtensionPointAddViewController: OAuthSwiftURLHandlerType {
|
||||||
|
|
||||||
//extension AccountsAddViewController: OAuthAccountAuthorizationOperationDelegate {
|
public func handle(_ url: URL) {
|
||||||
//
|
let session = ASWebAuthenticationSession(url: url, callbackURLScheme: callbackURL.scheme, completionHandler: { (url, error) in
|
||||||
// func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) {
|
if let callbackedURL = url {
|
||||||
// account.refreshAll { [weak self] result in
|
OAuth1Swift.handle(url: callbackedURL)
|
||||||
// switch result {
|
}
|
||||||
// case .success:
|
|
||||||
// break
|
guard let error = error else { return }
|
||||||
// case .failure(let error):
|
|
||||||
// self?.presentError(error)
|
self.oauth?.cancel()
|
||||||
// }
|
self.oauth = nil
|
||||||
// }
|
|
||||||
// }
|
if case ASWebAuthenticationSessionError.canceledLogin = error {
|
||||||
//
|
print("Login cancelled.")
|
||||||
// func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didFailWith error: Error) {
|
} else {
|
||||||
// view.window?.presentError(error)
|
NSApplication.shared.presentError(error)
|
||||||
// }
|
}
|
||||||
//}
|
})
|
||||||
|
|
||||||
|
session.presentationContextProvider = self
|
||||||
|
if !session.start() {
|
||||||
|
print("Session failed to start!!!")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
extension ExtensionPointAddViewController: ASWebAuthenticationPresentationContextProviding {
|
||||||
|
|
||||||
|
public func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
|
||||||
|
return view.window!
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user