SDK接入之Android Facebook SDK接入_androidsdk接入文档

2020-02-27 其他范文 下载本文

SDK接入之Android Facebook SDK接入由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“androidsdk接入文档”。

SDK接入(1)之Android Facebook SDK接入

由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结。SDK接入主流分为这么几类,登录、支付、分享、推送、统计等,达到借‘他山之石’的效果。顺便吐槽下,现在国内是个渠道就弄个所谓的自己的SDK,各种文档更新不及时、文档与Sample不对应、Sample测试不全或运行报错、技术支持沟通无人回复等,真是深受其害。

(1)接入前准备工作

需科学上网(FQ,VPN什么的自己解决),注册Facebook(后面统称FB)帐号。FB SDK下载地址为:https://origincache.facebook.com/developers/resources/?id=facebook-android-sdk-current.zip FB SDK接入文档地址为:https://developers.facebook.com/docs/android/getting-started/ FB SDK完整源码地址为:https://github.com/facebook/facebook-android-sdk(2)创建应用,获取应用编号和密钥

步骤如下:

登录facebook.com,在侧边可以看到有个开发者项,点击管理应用程序。如图:

创建应用,并添加要发布的平台。填写Package Name和Default Activity Cla Name

注:Package Name为应用程序的包名,与Manifest里面的包名对应。

Default Activity Cla Name为第一个启动的Activity,要用完整的类名,与声明如下的Activity类名对应。

例如:org.cocos2dx.lua.SplashActivity

生成KeyHash,并配置KeyHash。下载OpenSSL,并添加到环境变量。命令行执行:keytool-exportcert-alias androiddebugkey-keystore %HOMEPATH%.androiddebug.keystore | openl sha1-binary | openl base64,注意-keystore后面是签名文件的路径,执行完之后会生成如图:

将生成的KeyHash(28个字符的字符串)配置到FB后台,可添加多个。其它配置

(3)下载FB SDK,并配置参数

FB SDK下载后的文件,形如:facebook-android-sdk-4.8.2.aar。若使用AndroidStudio作为IDE,则导入该.aar文件。步骤为:

直接将facebook-android-sdk-4.8.2.aar复制到工程的libs路径下。

修改build.gradle,添加如下配置:

repositories {

flatDir {

dirs 'libs'

}

}

compile(name: 'facebook-android-sdk-4.8.2', ext: 'aar')如图:

然后,重新Rebuild Project一下,成功则会生成如下:

若使用Eclipse作为IDE,则需将.aar文件解压。

拷贝aets,res,AndroidManifest.xml,claes.jar,新建Eclipse工程并覆盖对应文件。

(4)FB SDK接入

配置FB id(FB后台获取的应用编号)。打开res/values/strings.xml,添加:

*** 配置AndroidManifest,添加权限

在application项下配置:

初始化FB SDK和激活事件,在Application的onCreate()调用如下代码:

public void onCreate(){

super.onCreate();

FacebookSdk.sdkInitialize(getApplicationContext());

AppEventsLogger.activateApp(this);} 讲FacebookActivity配置到AndroidManifest中,如下:

android:name=“com.facebook.FacebookActivity”

android:configChanges=“keyboard|keyboardHidden|screenLayout|screenSize|orientation”

android:label=“@string/app_name”

android:theme=“@android:style/Theme.Translucent.NoTitleBar” />

FB登录分为带Facebook按钮和不带Facebook按钮两种形式。带Facebook按钮需要将FB提供的LoginButton添加到自己的布局中。而游戏登录,只需要点击对应的游戏登录按钮再调用FB登录即可。所以下面介绍下,不带Facebook按钮的这种形式。

在MainActivity中的onCreate()中注册登录回调,代码如下:

callbackManager = CallbackManager.Factory.create();

LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback(){

@Override

public void onSucce(LoginResult loginResult){

// App code

}

@Override

public void onCancel(){

// App code

}

@Override

public void onError(FacebookException exception){

// App code

}

});FB登录,注意登录权限需使用public_profile,并在onActivityResult中处理用户授权,代码如下:

private static final String PERMISSION = “public_profile”;

LoginManager loginManager = LoginManager.getInstance();loginManager.setDefaultAudience(loginManager.getDefaultAudience());loginManager.setLoginBehavior(loginManager.getLoginBehavior());loginManager.logInWithReadPermiions(AppActivity.context_self, Arrays.asList(PERMISSION));onActivityResult处理代码:

public static void onActivityResult(int requestCode, int resultCode, Intent data){

if(callbackManager!= null){

callbackManager.onActivityResult(requestCode, resultCode, data);

}

} 登录结果处理,在FacebookCallback中,代码如下:

public void onSucce(LoginResult loginResult){

AcceToken acceToken = loginResult.getAcceToken();

String userId = acceToken.getUserId();

String token = acceToken.getToken();

// TODO:拿到userId和token,传给游戏服务器校验 }

public void onCancel(){ }

public void onError(FacebookException exception){

if(exception instanceof FacebookAuthorizationException){

LoginManager.getInstance().logOut();

// TODO:

} } 使用AppEventsLogger来添加自定义统计事件,登录和支付(分别对应游戏FB登录和发起支付并支付成功时)的示例代码如下:

登录事件统计:

Bundle parameters = new Bundle();

parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, roleId);

parameters.putIntwww.baiyuewang.net(AppEventsConstants.EVENT_NAME_

ACHIEVED_LEVEL, roleLevel);

AppEventsLogger logger = AppEventsLogger.newLogger(this, FACEBOOK_AD_ID);

logger.logEvent(“Login”, parameters);支付事件统计:

AppEventsLogger logger = AppEventsLogger.newLogger(this, FACEBOOK_AD_ID);

logger.logPurchase(BigDecimal.valueOf(orderInfo.getInt(“price”)), Currency.getInstance(SdkImp.CURRENCY));

FB SDK接入常见错误

登录权限异常,FacebookCallback的onError中返回FacebookAuthorizationException: 解决:一般是FB帐号设置了安全验证,例如登录需要安全码之类的,需要修改FB安全设置。

Invalid key hash错误。

《SDK接入之Android Facebook SDK接入.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
SDK接入之Android Facebook SDK接入
点击下载文档
相关专题 androidsdk接入文档 SDK Android Facebook androidsdk接入文档 SDK Android Facebook
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文