https://github.com/SimformSolutionsPvtLtd/SSFacebookLogin
The Reusable Facebook Login Components for iOS is the easiest way to get data from Facebook.
https://github.com/SimformSolutionsPvtLtd/SSFacebookLogin
facebook loginmanager swift
Last synced: 11 months ago
JSON representation
The Reusable Facebook Login Components for iOS is the easiest way to get data from Facebook.
- Host: GitHub
- URL: https://github.com/SimformSolutionsPvtLtd/SSFacebookLogin
- Owner: SimformSolutionsPvtLtd
- License: mit
- Created: 2018-03-30T07:41:23.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-05T11:45:17.000Z (over 1 year ago)
- Last Synced: 2025-03-07T01:46:25.484Z (12 months ago)
- Topics: facebook, loginmanager, swift
- Language: Swift
- Size: 146 KB
- Stars: 34
- Watchers: 8
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-SS-Mobile - SSFacebookLogin - The Reusable Facebook Login Components for iOS is the easiest way to get data from Facebook. (iOS Guides / Swift)
- awesome-mobile-libraries - SSFacebookLogin - The Reusable Facebook Login Components for iOS is the easiest way to get data from Facebook. (iOS / Swift)
README
# Reusable Facebook Login Components
The Reusable Facebook Login Components for iOS is the easiest way to get user data from Facebook .
## Features
- [x] Get Default data of user from facebook
- [x] Get Specific data of user from facebook
## Requirements
- iOS 8.0+
- Xcode 7.3+
## Installation
### CocoaPods
To incorporate the **SSFacebookLogin** library into your Xcode project utilizing CocoaPods, please reference it within your `Podfile` as shown below:
```ruby
pod 'SSFacebookLogin'
```
### Swift Package Manager
To add **SSFacebookLogin** as a dependency to your project, follow these steps:
1. Open your Swift project in Xcode.
2. Navigate to `File` -> `Add Package Dependencies...`.
3. Paste `https://github.com/SimformSolutionsPvtLtd/SSFacebookLogin.git` into the search bar.
4. Choose the version you want to use and click `Add Package`.
### Manually
If you prefer not to use any of the dependency managers above, you can integrate **SSFacebookLogin** into your project manually.
- Just copy `LoginManager.swift`, `FaceBookConstant.swift` and `userData.swift` from the `Classes` folder into your Xcode project.
- Make sure to add Facebook SDK or Pod's for iOS.
## Migration Guide
- For minimum `iOS 11.0` use `6.0.4`
- For minimum `iOS 12.0` or above use `7.0.0`
- For minimum `iOS 13.0` or above use `7.2.0`
## Configure App
1. Right-click `Info.plist`, and choose **Open As ▸ Source Code**.
2. Copy and paste the following XML snippet into the body of your file (`...`)
```
CFBundleURLTypes
CFBundleURLSchemes
fbAPP-ID
FacebookAppID
APP-ID
FacebookClientToken
CLIENT-TOKEN
FacebookDisplayName
APP-NAME
```
- In `CFBundleURLSchemes`, replace APP-ID with your App ID.
- In `FacebookAppID`, replace APP-ID with your App ID.
- In `FacebookClientToken`, replace CLIENT-TOKEN with the value found under Settings > Advanced > Client Token in your Facebook App Dashboard.
- In `FacebookDisplayName`, replace APP-NAME with the name of your app.
3. Add following code blocks in `AppDelegate.swift` file
- In **didFinishLaunchingWithOptions** method,
```swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Add below line for facebook configuration
LoginManager.shared.facebookConfiguration(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
```
- In **openUrlWithOption** method,
```swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return LoginManager.shared.faceboolUrlConfigurationWithOptions(app, open: url, options: options)
}
```
4. Voila 🪄✨💫 !
- For more details => [Facebook Integration for iOS](https://developers.facebook.com/docs/facebook-login/ios)
## Usage example
##### Example 1 (Get default data of user when no any arguments passed - use this for version 7.1.0 or below)
```swift
LoginManager.shared.loginWithFacebook(controller: self, { (token, error) in
if error == nil {
print(token?.userID ?? "",token?.tokenString ?? "")
}
}) { (result, error) in
if error == nil {
if let userData = result as? UserData {
print(userData)
print(userData.id)
} else {
print(result ?? "")
}
}
}
```
##### Example 2 (Get specific data of user by passing argument - use this for version 7.0.0 or below)
```swift
LoginManager.shared.loginWithFacebook(permission: [.email, .publicProfile, .userBirthday],
requriedFields: [.birthday, .about, .email], controller: self, { (token, error) in
if error == nil {
print(token?.userID ?? "",token?.tokenString ?? "")
}
}) { (result, error) in
if error == nil {
if let uResult = result {
print(uResult)
}
}
}
```
##### Example 3 (Get specific data of user by passing argument and passing token to Firebase for using Firebase - use this for version 7.2.0)
```swift
LoginManager.shared.logInWithFacebookFirebase(permission: [.email, .publicProfile, .userBirthday],
requriedFields: [.birthday, .about, .email], tracking: [.limited || .enabled], controller: self, { (token, nonce, error) in
if error == nil {
print(token?.userID ?? "",token?.tokenString ?? "")
}
}) { (userData, error) in
if error == nil {
if let uResult = result {
print(uResult)
}
}
}
```
##### Example 4 (Get specific data of user by passing argument with limted login option - use this for version 7.2.0)
```swift
LoginManager.shared.login(permission: [.email, .publicProfile, .userBirthday],
requriedFields: [.birthday, .about, .email], tracking: [.limited || .enabled],controller: self, { (token, error) in
if error == nil {
print("token \(token)")
}
}) { (userData, error) in
if error == nil {
if let uResult = result {
print(uResult)
}
}
}
```
## 🤝 How to Contribute
Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! :muscle:
Check out our [**Contributing Guide**](CONTRIBUTING.md) for ideas on contributing.
## Find this library useful? ❤️
Give a ⭐️ if this project helped you!
## Check out our other Libraries
🗂 Simform Solutions Libraries→
## MIT License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details