破晓 发表于 2015-1-15 10:49:53

使用ANE整合FACEBOOK

本帖最后由 破晓 于 2015-1-15 11:04 编辑

如何在AIR编写的移动应用中整合Facebook?以下是我这两天的研究成果。1. 如何阅读开发文档?Facebook的开发文档很全,但对于一个时间紧、任务重、被Boss一天催10遍,急于实现整合的开发者来说,或许没有那么多时间去详细阅读所有文档。这里整理了一个顺序:1.1 The Login Dialog无论如何,登录是第一步。这篇文档不但介绍了关于登录的所有细节,也详细介绍了关于Permissions的用法。去吧:The Login Dialog1.2 Dialogs Overview各种SDK中,都提供了Dialogs的相关方法。那么Dialog是什么呢?这篇文档让你了解全部。去吧:Dialogs Overview1.3 Graph APIGraph API是FaceBook的核心API,不了解它是不行DI。但这篇文档基本上看一半你就懂的。去吧:Graph API
2. 选择哪个SDK?上面说了,Facebook的核心API是 Graph API ,其他的SDK是架构在Graph API之上。Facebook大力推荐了四个SDK,不用对不起VPN:
[*]JavaScript SDK
[*]PHP SDK
[*]iOS SDK
[*]Android 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 SDKFacebook提供了原生SDK支持,分别对应iOS和Android设备。可是要在AIR上使用它们,也必须做二次封装。好在有人已经帮忙做好了这件事,而且直接提供ANE和 项目源码。请大家记住这样的好人吧:ANE-Facebook。这个项目中,使用的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使用
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 base64AIR使用的证书为p12格式,假设证书名称为zrong.p12。那么代码应该这样写:keytool -exportcert -alias root -keystore zrong.p12 -storetype pcks12 | openssl sha1 -binary | openssl base64如果忘记了原来证书的alias name,可以使用这个命令显示它:keytool -list -keystore zrong2.p12 -storetype pkcs12 -v关于keytool的用法,可以参看这篇文章:生成Google Play需要的p12自签名数字证书5. 参考
[*]Getting Started step 4做了更详细的介绍。
[*]Extending AIR for Android
关联文章
[*]生成Google Play需要的p12自签名数字证书
[*]ANE Toolkit增加电源管理功能
[*]PowerManager使用注意事项
[*]在ANE中连接Socket服务器的注意事项
[*]在AIR编写的Android/iOS程序中控制设备方向

本文来自:http://zengrong.net/post/1831.htm



页: [1]
查看完整版本: 使用ANE整合FACEBOOK