facebook登陆接入
因上周公司在做海外项目,需要接入facebook,目前完成了登陆接入,现在写出来,方便大家。
1.FaceBook开发者设置:
https://developers.facebook.com/docs/facebook-login/android/
网址需要翻,所以先做好准备。里面有两种方式,我用的Maven方式。
2.使用 Maven
1.在您的项目中,打开 your_app > Gradle Scripts > build.gradle (Project),确保下列存储库都添加到 buildscript { repositories {}} 中:
jcenter()
2.在您的项目中,打开 your_app > Gradle Scripts > build.gradle (Module: app) 并将下列执行语句添加到 dependencies{} 部分,以便依赖于最新版的 Facebook 登录 SDK:
implementation 'com.facebook.android:facebook-login:[5,6)'
3.构建项目。
3.编辑您的资源和清单
1.打开您的 /app/res/values/strings.xml 文件。
添加如下所示的代码:
<string name="facebook_app_id">[APP_ID]</string> <string name="fb_login_protocol_scheme">fb[APP_ID]</string>
2打开 /app/manifest/AndroidManifest.xml 文件。
在 application 元素后添加以下 uses-permission 元素:
<uses-permission android:name="android.permission.INTERNET"/>
3.在 application 元素中添加以下 meta-data 元素、一个针对 Facebook 的 activity 元素以及一个针对 Chrome 自定义选项卡的 activity 元素和意向筛选条件:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <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>
4.软件包名称和默认类与应用进行关联,为应用提供开发和发布密钥散列,为应用启用单点登录
这些自己在上面开发者里面设置。
5.代码部分
package org.cocos2dx.cpp_empty_test;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import java.util.Arrays;
public class facebookLogin {
private CallbackManager fbCallback;
private static Activity mActivity;
protected void onCreate(Activity activity) {
mActivity = activity;
fbCallback = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(fbCallback,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
String token = loginResult.getAccessToken().getToken();
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
fbCallback.onActivityResult(requestCode, resultCode, data);
}
public static void facebookLogin(){
LoginManager.getInstance().logInWithReadPermissions(mActivity, Arrays.asList("public_profile"));
}
}
以上是登陆的基本功能,自己放假做了个demo,后续接入google登陆或支付,也会分享。
本文地址:https://blog.csdn.net/weixin_42495311/article/details/107432558