تتيح مجموعة Facebook SDK لنظام Android للأشخاص إمكانية تسجيل الدخول إلى تطبيقك باستخدام تسجيل دخول فيسبوك. وعندما يسجل الأشخاص الدخول إلى تطبيقك عبر فيسبوك، يمكنهم منح أذونات لتطبيقك حتى تتمكن من استرداد المعلومات أو تنفيذ إجراءات على فيسبوك نيابةً عنهم.
للتعرف على مثال لمشروع يوضح كيفية دمج تسجيل دخول فيسبوك في تطبيق Android، راجع FBLoginSample على GitHub.
اتبع الخطوات التالية لإضافة تسجيل دخول فيسبوك إلى تطبيقك.
يرجى تسجيل الدخول إلى فيسبوك لإنشاء تطبيقات أو التسجيل كمطور.
buildscript { repositories {}}
: dependencies{}
للاعتماد على آخر إصدار من مجموعة SDK لتسجيل دخول فيسبوك: إذا كنت تستخدم مجموعة Facebook SDK لنظام Android بالإصدار 5.15 أو الإصدارات الأحدث، فلن تحتاج إلى إضافة أي نشاط أو الفلترة الهدف في علامات التبويب المخصصة في Chrome. ويتم تضمين هذه الوظيفة في مجموعة SDK.
بعد دمج تسجيل دخول فيسبوك، يتم تسجيل بعض من أحداث التطبيق وتجميعها في مدير الأحداث، ما لم تقم بتعطيل التسجيل التلقائي لحدث التطبيق. للحصول على المزيد من التفاصيل حول المعلومات التي يتم تجميعها وكيفية تعطيل التسجيل التلقائي لحدث التطبيق، يمكنك الرجوع إلى التسجيل التلقائي لحدث التطبيق.
FacebookActivity
إلى ملف بيانات Android. /app/res/values/strings.xml
.string
مع الأسماء facebook_app_id
وfb_login_protocol_scheme
وfacebook_client_token
وقم بتعيين القيم إلى معرف التطبيق ورمز البرنامج. على سبيل المثال، إذا كان معرف تطبيقك 1234
ورمز البرنامج 56789
، فسيبدو الرمز البرمجي كما يلي: /app/manifest/AndroidManifest.xml
. meta-data
إلى العنصر application
لمعرف تطبيقك ورمز البرنامج: application
لديك: <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity>
uses-permission
إلى ملف البيانات الموجود بعد عنصر application
: uses-permission
إلى ملف البيانات الموجود بعد العنصر application
: يمكنك بشكل مباشر تعيين التسجيل التلقائي لأحداث التطبيق على "true" أو "false" عن طريق تعيين العلامة AutoLogAppEventsEnabled
كمفتاح في AndroidManifest.xml
.
LoginButton
من مجموعة SDK. يُعد LoginButton
عنصر واجهة مستخدم يتضمن الوظائف المتوفرة في LoginManager
. وعندما ينقر شخص ما على الزر، يتم تشغيل تسجيل الدخول من خلال الأذونات التي تم تعيينها في LoginManager
. يتطلب تسجيل دخول فيسبوك إذن public_profile متقدمًا ليتم استخدامه بواسطة المستخدمين الخارجيين. ويتبع الزر حالة تسجيل الدخول، ويعرض النص الصحيح بناءً على حالة مصادقة الشخص. CallbackManager.Factory.create
. Login button
وتسجيل عملية استدعاء في الأسلوب onCreate()
أو onCreateView()
. تشتمل الخصائص التي يمكنك تخصيصها على LoginBehavior
وDefaultAudience
وToolTipPopup.Style
والأذونات الموجودة في LoginButton
. على سبيل المثال: private static final String EMAIL = "email"; loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions(Arrays.asList(EMAIL)); // If you are using in a fragment, call loginButton.setFragment(this); // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code } @Override public void onCancel() { // App code } @Override public void onError(FacebookException exception) { // App code } });
LoginManager
أو LoginButton
. إذا قمت بتسجيل عملية الاستدعاء باستخدام LoginButton
، فلن تحتاج إلى تسجيل عملية الاستدعاء في مدير تسجيل الدخول. onCreate()
الخاصة بالجزء: callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code } @Override public void onCancel() { // App code } @Override public void onError(FacebookException exception) { // App code } });
LoginResult
على AccessToken
الجديد، وأحدث الأذونات الممنوحة أو المرفوضة. registerCallback
لكي يتم تسجيل الدخول بنجاح، ويمكنك اتباع تغييرات رمز الوصول الحالي الذي يتضمن الفئة AccessTokenTracker
الموضحة أدناه. onActivityResult
، يمكنك استدعاء callbackManager.onActivityResult
لإدخال نتائج تسجيل الدخول في LoginManager
عبر callbackManager
. إذا كنت تستخدم أجزاء أو أنشطة AndroidX، فلا داعي لتجاوز "onActivityResult".
onActivityResult
إلى callbackManager
. LoginManager
بتعيين AccessToken
الحالي وProfile
لهذا الشخص. تحفظ مجموعة FacebookSDK هذه البيانات في التفضيلات المشتركة وتقوم بتعيينها عند بداية الجلسة. يمكنك معرفة ما إذا كان الشخص قد سجل دخوله بالفعل من خلال فحص AccessToken.getCurrentAccessToken()
وProfile.getCurrentProfile()
. AccessToken.getCurrentAccessToken
باستخدام مجموعة SDK من ذاكرة التخزين المؤقت أو من إشارة مرجعية بالتطبيق عند تشغيله من البداية. ينبغي التحقق من صلاحيته من طريقة onCreate
التي تخص Activity
:queries
في ملف /app/manifest/AndroidManifest.xml
لديك. ويوضح الرمز البرمجي التالي كيفية تمكين تسجيل الدخول السريع. LoginManager.getInstance().retrieveLoginStatus(this, new LoginStatusCallback() { @Override public void onCompleted(AccessToken accessToken) { // User was previously logged in, can log them in directly here. // If this callback is called, a popup notification appears that says // "Logged in as <User Name>" } @Override public void onFailure() { // No access token could be retrieved for the user } @Override public void onError(Exception exception) { // An error occurred } });