React Native FB Login — это полностью совместимый с IOS и Android компонент без использования Facebook Native/Web SDK, что позволяет интегрировать Facebook Login в приложения React Native, а также поддерживает такие ответы, как username
, которые устарели в Facebook. Чтобы использовать этот компонент, разработчикам не нужно устанавливать какие-либо собственные пакеты SDK, а также не нужно импортировать или связывать какие-либо пакеты SDK в IOS и Android с Facebook. Этот компонент полностью совместим и протестирован со всеми версиями React Native, в нем больше нет ошибок, как в других компонентах, и он очень прост в использовании.
Мы используем прямой API Facebook Graph, чтобы предотвратить импорт/связывание шагов Native SDK из Facebook.
🚨Обновление: готова свежая версия 1.0.5 с множеством новых функций 📹 https://bit.ly/33HxQ2J, пожалуйста, обновите сейчас, если вы еще не сделали это через npm or yarn
Предварительная версия iOS/Android
Настроить приложение для входа через Facebook
Вам нужно будет создать Приложение для входа в Facebook для использования с этим компонентом и + добавить Нажмите, чтобы увидеть ссылку в вашем URL-адресе перенаправления. Настройки приложения для входа в Facebook в поле ввода Valid OAuth Redirect URIs
, эта ссылка требуется в приложении для входа в Facebook, поскольку она получит использовать, когда перенаправление произойдет, когда пользователь войдет в систему из вашего приложения, также вы можете управлять этим URL-адресом перенаправления из этого компонента в качестве реквизита redirectUrl='YOUR_REDIRECT_URL'
для сценариев на стороне сервера, таких как PHP, JSP, nodeJS
для хранения информации о пользователе, например token,first_name,last_name
, когда пользователь войдет в систему, но это по желанию. Если вы уже создали приложение для входа в Facebook, вы можете пропустить все шаги, кроме добавления URL-адреса перенаправления в настройках приложения для входа в Facebook в поле ввода Valid OAuth Redirect URIs
. Когда все будет готово, вам просто нужно получить clientId
и secretKey
из приложения для входа в Facebook, этому компоненту понадобятся эти реквизиты позже.
Примечание. Когда вы создаете новый Facebook Login App
, по умолчанию для режима приложения всегда установлено значение development
, и этот компонент отлично работает с ним, но когда вы будете готовы загрузить свое приложение React Native в магазины приложений, не забудьте отправить свое Facebook Login App
на проверку, чтобы изменить его статус. из режима development
в режим public
.
Установка
установите пакет react-native-fblogin
в свой проект или клонируйте проект Пример:
yarn add @fadidev/react-native-fblogin
Или, если используется npm:
npm install @fadidev/react-native-fblogin
использование
логин с разрешениями()
В этом репозитории представлены доступные реквизиты:
Это должно вызываться при нажатии кнопки Login
в вашем приложении React Native.
import React, { Component } from 'react' import { View, Button } from 'react-native' import { loginInWithPermissions } from '@fadidev/react-native-fblogin' export default class App extends Component { state = { login: false } /* runNow: default is TRUE you can skip this prop, (optional) redirectUrl: default is https://facebook.com/connect/login_success.html, you can skip or replace with your URL, (optional) getMyInformationsFields: default is id,first_name,last_name,name,email,picture you can skip it or add more, (optional) clientId: default is null and its required secretKey: default is null and its required onLoginSuccess: default returns console.log({...data}) when login success onLoginFailure: default returns console.log({...error}) when something fails */ loginIn = () => { const { login } = this.state if (login) { return loginInWithPermissions({ runNow: true, redirectUrl: 'https://facebook.com/connect/login_success.html', getMyInformationsFields:['id,first_name,last_name,name,email,picture'], clientId: 'REPLACE_WITH_YOUR_APP_ID', secretKey: 'REPLACE_WITH_YOUR_SECRET_KEY', onLoginSuccess: data => console.log(data), onLoginFailure: error => console.log(error) }) } } render() { const { loginIn } = this return ( <View style={{ flex: 1, justifyContent: 'space-evenly', width: '50%', alignSelf: 'center', marginVertical: '10%'}}> <Button onPress={() => this.setState({ login: true })} title='Login'/> {loginIn()} // mounting the component when button clicked </View> ) } }
Ответ:
{ access_token: string, email: string, expires_in: integer, first_name: string, id: string, isLoggedIn: boolean, last_name: string, name: string, picture: { data: { height: integer, is_silhouette: boolean, url: string, width: integer } }, token_type: string }
⚡ получить имя пользователя ()
Это даст вам username
, когда пользователь войдет в систему, и это deprecated by Facebook long back
, но здесь оно доступно, может получить доступ к любому компоненту
import React, { Component } from 'react' import { View, Button } from 'react-native' import { getUsername } from '@fadidev/react-native-fblogin' export default class App extends Component { render() { return ( <View style={{ flex: 1, justifyContent: 'space-evenly', width: '50%', alignSelf: 'center', marginVertical: '10%'}}> <Button onPress={() => { getUsername() .then(username => console.log(username)) .catch(error => console.log(error)) }} title='getUsername' /> </View> ) } }
Ответ:
{ username: string }
получитьтокен доступа()
Это даст вам user_token
, когда пользователь войдет в систему, сможет получить доступ к любому компоненту
import React, { Component } from 'react' import { View, Button } from 'react-native' import { getAccessToken } from '@fadidev/react-native-fblogin' export default class App extends Component { render() { return ( <View style={{ flex: 1, justifyContent: 'space-evenly', width: '50%', alignSelf: 'center', marginVertical: '10%'}}> <Button onPress={() => alert(JSON.stringify(getAccessToken()))} title='getAccessToken'/> </View> ) } }
Ответ:
{ accessToken: string, expiresIn: string, status: boolean }
получитьмоюинформацию()
Это даст вам first_name,last_name,id,picture
подобных деталей, к которым можно получить доступ в любом компоненте
import React, { Component } from 'react' import { View, Button } from 'react-native' import { getMyInformations } from '@fadidev/react-native-fblogin' export default class App extends Component { render() { return ( <View style={{ flex: 1, justifyContent: 'space-evenly', width: '50%', alignSelf: 'center', marginVertical: '10%'}}> <Button onPress={() => alert(JSON.stringify(getMyInformations()))} title='getMyInformations'/> </View> ) } }
Ответ:
{ id: double, first_name: string, last_name: string, name: string, email: string, picture: object, token_type: string }
выйти()
Этого достаточно для сброса пользовательских данных в вашем приложении, доступ к которому возможен из любого компонента.
import React, { Component } from 'react' import { View, Button } from 'react-native' import { logout } from '@fadidev/react-native-fblogin' export default class App extends Component { render() { return ( <View style={{ flex: 1, justifyContent: 'space-evenly', width: '50%', alignSelf: 'center', marginVertical: '10%'}}> <Button onPress={() => alert(JSON.stringify(logout()))} title='logout'/> </View> ) } }
Ответ:
{ message: string, status: boolean }
Содействие
Просто отправьте запрос на вытягивание!
Авторское право и лицензия
Авторские права на код и документацию принадлежат @FadiDev, 2019 г. Код выпущен под лицензией MIT.