RxFacebook 0.4.0

RxFacebook 0.4.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年6月
SPM支持SPM

Sourav Chandra维护。



 
依赖
RxSwift>= 3.0
FacebookLogin>= 0.2.0
FacebookCore>= 0.2.0
 

  • 作者
  • sauravexodus

Version License Platform

示例

要运行示例项目,请先克隆仓库,然后从示例目录运行pod install

import FacebookLogin
import FacebookCore

class Example {
	let loginManager = LoginManager()

	func signIn() {
			loginManager.rx.logIn(with: [.publicProfile]).flatMap { [weak self] (loginResult) -> Observable<EmailResult> in
							guard let strongSelf = self else { return .just((nil, "Something went wrong")) }
							switch loginResult {
							case .cancelled: return .just((nil, "User cancelled the result"))
							case let .failed(error): return .just((nil, error.localizedDescription))
							// Extract the facebook login result here and chain it with your graph request
							case let .success(acceptedPermissions, declinedPermissions, accessToken): return strongSelf.fetchEmail()
							}
					}
					.subscribe(onNext: { email, error in
							if let `email` = email {
									print(email)
							} else if let `error` = error {
									print(error)
							}
					})
					.disposed(by: disposeBag)
	}

	func fetchEmail() -> Observable<EmailResult> {
			let graphRequest  = GraphRequest(graphPath: "/me")
			return graphRequest.rx.getResponse().map { result in
					switch result {
					case let .success(response):
							guard let objectMap = response.dictionaryValue, let email = objectMap["email"] as? String else { return (nil, "Couldn't find email") }
							return (email, nil)
					case let .failed(error):
							return (nil, error.localizedDescription)
					}
			}
	}
}

要求

pod 'RxSwift'
pod 'FacebookCore'
pod 'FacebookLogin'

安装

RxFacebook通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中

pod 'RxFacebook'

作者

Sourav Chandra RxSwift爱好者 [email protected]

许可证

RxFacebook 遵循 MIT 许可协议。更多信息请参阅 LICENSE 文件。