首次接触海外项目,开发环节与测试流程刚开始搞得一头雾水,历时两周终于把登录和支付调通了,特此记录下;
不过总结下来,与国内流程不同的点,主要是测试流程,需要专门的测试账号与测试权限才能测通
首先打开开发文档,地址如下,跟着开发文档一步步走就好,细节上官方文档没有提到的或容易忽视的,我在后续步骤均已书写,跟着走没问题的
Faccebook登录开发文档地址
1. 新建应用很简单,自行按分类新建。建一个就可以,ios和android
在里面各自配置就好
2. 集成sdk使用maven
- //导入当前最新版,如果不止集成登录功能用这个全的
implementation 'com.facebook.android:facebook-android-sdk:[11,12)'
- AndroidManifest.xml 中添加
<!-- facebook facebook_client_token:是应用-设置-高级-客户端口令 -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<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>
3. 生成秘钥散列前提准备:
安装:openssl-for-windows OpenSSL 库
准备好keystore或jks文件,要用到该文件的地址;以下 xxx == jks或keystore名
- 生成开发密钥散列
keytool -exportcert -alias androiddebugkey -keystore D:/heiyanabroad-app/app/xxx.keystore| openssl sha1 -binary | openssl base64
- 生成发布密钥散列
keytool -exportcert -alias xxx -keystore D:/heiyanabroad-app/app/xxx.jks | openssl sha1 -binary | openssl base64
- 注意:
1.我debug运行的时候需要填的是发布秘钥散列;
2.还有我是首次上传到google play,让Google 管理应用签名密钥,上传到google发布后,需要生成一个新的秘钥,在google:应用-设置-应用完整性,下载上传秘钥证书
keytool -import -file D:/heiyanabroad-app/app/upload_cert.der -keystore D:/heiyanabroad-app/app/adcadc.keystore
- 生成的秘钥都填到facebook这里来:
4. 登录按钮,官方文档给出的是封装好的,不好用,可以用自定义的
activity的onCreate()里:
- 退出登录:LoginManager.getInstance().logOut();
- 检查登录状态:
AccessToken accessToken = AccessToken.getCurrentAccessToken();
boolean isLoggedIn = accessToken != null && !accessToken.isExpired();
- 获取Facebook用户信息:
5. 测试
应用未在google play上架前,测试的时候需要登录开发者facebook账号,用来测试;或者如下方式添加测试者账号;
- 测试账号与开发者账号加好友
- 选择用户身份,测试账号
- 然后测试者会出现待回复,此时在电脑端登录测试者的账号,消息里找到邀请信息,接受,就可以用这个测试账号登录app了