SDK接入之Android Facebook SDK接入.docx
-
资源ID:3165534
资源大小:39.29KB
全文页数:7页
- 资源格式: DOCX
下载积分:6.99金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
SDK接入之Android Facebook SDK接入.docx
SDK接入之Android Facebook SDK接入SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结。SDK接入主流分为这么几类,登录、支付、分享、推送、统计等,达到借他山之石的效果。顺便吐槽下,现在国内是个渠道就弄个所谓的自己的SDK,各种文档更新不及时、文档与Sample不对应、Sample测试不全或运行报错、技术支持沟通无人回复等,真是深受其害。 接入前准备工作 需科学上网,注册Facebook帐号。 FB SDK下载地址为: FB SDK接入文档地址为: FB SDK完整源码地址为: 创建应用,获取应用编号和密钥 步骤如下: 登录,在侧边可以看到有个开发者项,点击管理应用程序。如图: 创建应用,并添加要发布的平台。填写Package Name和Default Activity Class Name 注:Package Name为应用程序的包名,与Manifest里面的包名对应。 Default Activity Class Name为第一个启动的Activity,要用完整的类名,与声明如下的Activity类名对应。 <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="bigdevil"/> </intent-filter> 例如:org.cocos2dx.lua.SplashActivity 生成KeyHash,并配置KeyHash。 下载OpenSSL,并添加到环境变量。 命令行执行:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | openssl sha1 -binary | openssl base64,注意-keystore后面是签名文件的路径,执行完之后会生成如图: 将生成的KeyHash配置到FB后台,可添加多个。 其它配置 下载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文件解压。 拷贝assets,res,AndroidManifest.xml,classes.jar,新建Eclipse工程并覆盖对应文件。 FB SDK接入 配置FB id。打开res/values/strings.xml,添加: <string name="facebook_app_id">172633573185136</string> 配置AndroidManifest,添加权限 <uses-permission android:name="android.permission.INTERNET"/> 在application项下配置: <application android:label="string/app_name"> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="string/facebook_app_id"/> </application> 初始化FB SDK和激活事件,在Application的onCreate调用如下代码: public void onCreate super.onCreate; FacebookSdk.sdkInitialize(getApplicationContext); AppEventsLogger.activateApp(this); 讲FacebookActivity配置到AndroidManifest中,如下: <activity 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<LoginResult> Override public void onSuccess(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.logInWithReadPermissions(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 onSuccess(LoginResult loginResult) AccessToken accessToken = loginResult.getAccessToken; String userId = accessToken.getUserId; String token = accessToken.getToken; / TODO:拿到userId和token,传给游戏服务器校验 public void onCancel public void onError(FacebookException exception) if (exception instanceof FacebookAuthorizationException) LoginManager.getInstance.logOut; / TODO: 使用AppEventsLogger来添加自定义统计事件,登录和支付的示例代码如下: 登录事件统计: Bundle parameters = new Bundle; parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, roleId); parameters.putI(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错误。