本帖最后由 破晓 于 2015-1-15 11:04 编辑
如何在AIR编写的移动应用中整合Facebook?以下是我这两天的研究成果。 1. 如何阅读开发文档?Facebook的开发文档很全,但对于一个时间紧、任务重、被Boss一天催10遍,急于实现整合的开发者来说,或许没有那么多时间去详细阅读所有文档。这里整理了一个顺序: 1.1 The Login Dialog 1.2 Dialogs Overview 1.3 Graph API Graph API是FaceBook的核心API,不了解它是不行DI。但这篇文档基本上看一半你就懂的。去吧:Graph API
2. 选择哪个SDK? 上面说了,Facebook的核心API是 Graph API ,其他的SDK是架构在Graph API之上。 Facebook大力推荐了四个SDK,不用对不起VPN: 但是,对于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上使用它们,也必须做二次封装。 这个项目中,使用的AndroidSDK是1.x版本。3.x版本作者也已经基本上实现了,但还有问题。我fork了这个项目,解决了剩下的一点点问题,然后写了一个sample。我fork的项目地址:https://github.com/zrong/ANE-Facebook/tree/zrong,我新建了 zrong 分支来进行修改。 这比那几个在Adobe Devnet上写文章,然后卖 $50 的ANE插件的 guy 们厚道多了。 3. ANE-Facebook使用
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 pcks12 | openssl sha1 -binary | openssl base64
复制代码 如果忘记了原来证书的alias name,可以使用这个命令显示它:
|