เป็นเรื่องที่ยอดเยี่ยมเสมอที่ได้เห็นว่าแอพยอดนิยมอย่าง Quora, Medium ใช้ Facebook ในการเข้าสู่ระบบอย่างไร และมันทำให้ฉันคิดว่าจะทำแบบเดียวกันได้หรือไม่ โชคดีที่ได้รับความช่วยเหลือจาก Facebook ก็สามารถทำได้ Facebook มี SDK (ชุดพัฒนาซอฟต์แวร์) ซึ่งช่วยเรารวมเข้ากับแอพของเรา ชื่อของ SDK ที่ระบุคือ react-native-fbsdk เป็นห้องสมุดที่ทรงพลังมากที่ช่วยให้เราได้รับรายละเอียดจาก Facebook และจัดการตามนั้นในแอพของเรา
ขั้นตอนต่อไปนี้ช่วยให้เรารวม Facebook เข้ากับแอพต่างๆ ได้อย่างง่ายดาย
- ดำเนินการคำสั่ง npm install react-native-fbsdk ภายในโฟลเดอร์โปรเจ็กต์โดยใช้ git bash ซึ่งจะติดตั้งไลบรารีลงในโปรเจ็กต์ของคุณ คุณสามารถตรวจสอบข้ามได้โดยค้นหาชื่อแพ็คเกจภายใน package.json
- ตอนนี้รวมขั้นตอนถัดไปภายใต้ android/app/src/main/res/values /strings.xml
‹string name=”facebook_app_id”›รหัสแอป Facebook‹/string›
3. ตอนนี้รวมสิ่งต่อไปนี้ภายใต้ android/build.gradle
*โปรดทราบว่าจะมีไฟล์ build.gradle สองไฟล์ตรวจสอบเส้นทางด้านบนและรวมโค้ดด้านล่าง
mavenCentral()
โค้ดข้างต้นจะต้องรวมอยู่ใน
buildscript{
…
ที่เก็บข้อมูล {
…
mavenCentral()
}}
4. ตอนนี้รวมการพึ่งพาต่อไปนี้ภายใต้ android/app/build.gradle
การใช้งาน 'com.facebook.android:facebook-android-sdk:[5,6)'
โค้ดด้านบนควรรวมอยู่ใน การอ้างอิง
5. ตรวจสอบสิทธิ์ผู้ใช้ต่อไปนี้ภายใต้ android/app/src/AndroidManifest.xml
‹uses-permission android:name=”android.permission.INTERNET”/›
6. ตอนนี้รวมข้อมูลเมตาต่อไปนี้
‹ข้อมูลเมตา android:name=”com.facebook.sdk.ApplicationId” android:value=”@string/facebook_app_id”/›
ภายใต้ android/app/src/AndroidManifest.xml ภายใน AndroidManisfest ให้วางไว้ด้านล่าง ‹application>tag ดังตัวอย่างต่อไปนี้
‹application›
…
‹meta-data android:name=”com.facebook.sdk.ApplicationId” android:value=”@string/facebook_app_id”/›
….
‹/แอปพลิเคชัน›
7. สุดท้ายแทนที่โค้ดต่อไปนี้ภายใต้ App.js
import React, { Component } from 'react'; import { View } from 'react-native'; import { LoginButton, AccessToken } from 'react-native-fbsdk'; export default class Login extends Component { render() { return ( <View> <LoginButton onLoginFinished={ (error, result) => { if (error) { console.log("login has error: " + result.error); } else if (result.isCancelled) { console.log("login is cancelled."); } else { AccessToken.getCurrentAccessToken().then( (data) => { console.log(data.accessToken.toString()) } ) } } } onLogoutFinished={() => console.log("logout.")}/> </View> ); } };
- ทุกอย่างได้รับการตั้งค่าจากฝั่งไคลเอ็นต์ ตอนนี้เราต้องเชื่อมต่อแอปของเรากับ Facebook
8. ไปที่ https://developers.facebook.com/ และเข้าสู่ระบบด้วยบัญชี Facebook ของคุณ หากมีอยู่ ให้สร้างบัญชี Facebook ใหม่
9. เมื่อคุณเข้าสู่ระบบแล้ว คุณจะพบแท็บแอปของฉันทางด้านขวามือ เลือกสร้างแอป ตั้งชื่อให้กับแอป
10. เมื่อสร้างแอปแล้ว คุณจะพบ APP ID ถัดจากแถบด้านข้าง คัดลอกหมายเลขและแทนที่ข้อความใต้ android/app/src/main/res/values /strings.xml ด้านล่างนี้ ฉันแค่แทนที่ข้อความที่มีอยู่ด้วยตัวเลขจำลองแบบสุ่ม
‹ชื่อสตริง=”facebook_app_id”›1234567890‹/string›
11 ตอนนี้เลือก การตั้งค่า -> พื้นฐาน ใต้คอนโซลนักพัฒนาซอฟต์แวร์ของ Facebook และไปที่ด้านล่างของหน้าจอ คุณจะพบ เพิ่มแพลตฟอร์ม เลือกสิ่งนั้น ภายใต้นั้นให้เลือก Android .
12. ตอนนี้สิ่งที่เราต้องทำคือเชื่อมโยงแอพและ Facebook ด้วยคีย์ความปลอดภัย เปิด git bash ค้นหา git bash ไปยังโฟลเดอร์ที่มีโปรเจ็กต์และวางโค้ดต่อไปนี้
keytool -exportcert -นามแฝง androiddebugkey -keystore android/app/debug.keystore | openssl sha1 -ไบนารี | ฐาน openssl64
โดยพื้นฐานแล้วหมายความว่า เรากำลังบอกให้ gitbash สร้างไฟล์ debug.keystore ภายใต้ android/app/ ภายในซึ่งมีคีย์ความปลอดภัยที่สร้างในรูปแบบ openssl sha1 และ openssl base64
13. คัดลอกโค้ดที่สร้างขึ้น เปิดคอนโซลนักพัฒนาของ Facebook ไปที่การตั้งค่า -> พื้นฐาน -> แพลตฟอร์ม Android ที่สร้างขึ้นในขั้นตอนก่อนหน้า และวางในส่วนแฮชคีย์
- โปรดทราบว่ารหัสจะเป็นตัวเลข 28 หลัก
นั่นคือการเชื่อมโยงแอพ Facebook และ React Native (Android) คุณสามารถใช้เพื่อวัตถุประสงค์ในการเข้าสู่ระบบ แต่หากคุณต้องการใช้ข้อมูลอื่น เช่น เพศ หมายเลขโทรศัพท์ Facebook จะต้องตรวจสอบแอพของคุณ จากนั้นมีเพียงคุณเท่านั้นที่จะได้รับรายละเอียดเหล่านั้น
ขอบคุณ หวังว่าขั้นตอนข้างต้นจะได้ผลตามที่อธิบายไว้ โปรดอย่าลังเลที่จะแสดงความคิดเห็นหากบทความมีการเปลี่ยนแปลงและปรบมือถ้าคุณชอบ