使用ANE整合Facebook
Integrating facebook use ANE
- 2013-04-02更新: 加入Native Android App设置部分
- 2013-05-17更新: 加入支持Android SDK3.0的项目介绍
如何在AIR编写的移动应用中整合Facebook?以下是我这两天的研究成果。
1. 如何阅读开发文档?
Facebook的开发文档很全,但对于一个时间紧、任务重、被Boss一天催10遍,急于实现整合的开发者来说,或许没有那么多时间去详细阅读所有文档。这里整理了一个顺序:
1.1 The Login Dialog
无论如何,登录是第一步。这篇文档不但介绍了关于登录的所有细节,也详细介绍了关于Permissions的用法。去吧:The Login Dialog
1.2 Dialogs Overview
各种SDK中,都提供了Dialogs的相关方法。那么Dialog是什么呢?这篇文档让你了解全部。去吧:Dialogs Overview
1.3 Graph API
Graph API是FaceBook的核心API,不了解它是不行DI。但这篇文档基本上看一半你就懂的。去吧:Graph API
2. 选择哪个SDK?
上面说了,Facebook的核心API是 Graph API ,其他的SDK是架构在Graph API之上。
Facebook大力推荐了四个SDK,不用对不起观众:
但是,对于AIR来说,我们必须将上面的SDK进行二次封装才能用。
2.1 JavaScript SDK
一开始我考虑的是JavaScript SDK,因为它可以同时兼容Mobile Device和Desktop。经常做测试的同学都知道,在AIR模拟器里面测试,比在手机上测试可爽多了。
在Google Code上有这样一个项目:facebook-actionscript-api ,它封装了Facebook的JavaScript SDK,采用StageWebView做登录。但是这个项目最后一次是在2011-10-19,以Facebook一日千里的变化,这个API估计很难用了。
我Checkout了该项目的代码,跑了几个Sample,看了它的所有Wiki,也没有调试成功。该项目的所有Wiki都标注成了departed,看得人心惊胆战啊……
2.2 Native SDK
Facebook提供了原生SDK支持,分别对应iOS和Android设备。可是要在AIR上使用它们,也必须做二次封装。
好在有人已经帮忙做好了这件事,而且直接提供ANE和 项目源码。请大家记住这样的好人吧:ANE-Facebook
这个项目中,使用的AndroidSDK是1.x版本。3.x版本作者也已经基本上实现了,但还有问题。我fork了这个项目,解决了剩下的一点点问题,然后写了一个sample。我新建了 zrong 分支 来进行修改。
这比那几个在Adobe Devnet上写文章,然后卖 $50 的ANE插件的 guy 们厚道多了。
3. ANE-Facebook使用
ANE-Facebook 没有提供 Sample,所以我写了一个:ANE-Facebook-Sample 。
4. Native Android App设置
如果使用了Native Android App,那么需要在Facebook中需要配置一些信息才能正常使用。
4.1 配套名称
AIR的appid。AIR在打包成Android APK的时候,会自动在appid前面加入air前缀。例如 org.zengrong.facebook.test
,会被自动修改成 air.org.zengrong.facebook.test
;
4.2 Class Name
配套名称+主Class名称。AIR生成的APK的主Class为AppEntry。例如上例中的APP,应该填写 air.org.zengrong.facebook.AppEntry
;
4.3 Hash Key
这个值需要使用JDK的keytool来生成,在使用的时候,需要知道原来证书的alias name。假设原来的证书名称为zrong.keystore,alias name为“root”,那么生成Hash Key的代码如下:
keytool -exportcert -alias root -keystore zrong.keystore | openssl sha1 -binary | openssl base64
AIR使用的证书为p12格式,假设证书名称为zrong.p12。那么代码应该这样写:
keytool -exportcert -alias root -keystore zrong.p12 -storetype pkcs12 | openssl sha1 -binary | openssl base64
如果忘记了原来证书的alias name,可以使用这个命令显示它:
keytool -list -keystore zrong2.p12 -storetype pkcs12 -v
关于keytool的用法,可以参看这篇文章:生成Google Play需要的p12自签名数字证书
5. 参考
- 文章ID:1831
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/integrating_facebook_use_ane/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。