AS3でThriftを使う


LZTDを作る際に必要になったので
(というか一番のヤマだった)
いくつか問題残ってますが、自分はこの方法でやりました。

1:適当にサーバを用意する(自分はVirtualBoxでやりました)

2:https://github.com/asogor/thrift-as3
  ここからソースを落としてきてコンパイル

3:EvernoteのApiをダウンロードして、thiftのソースを thriftコマンドでgenerateする
自分のバージョンだと
evernote-api-1.16\src\thrift
に5個の.thriftファイルがあったので、それを全部
thrift -gen as3 **.thrift みたいにする。

このうちType.thriftとかはエラーで落ちるので、
(原因は64ビットを割り当てる型がAS3にないためらしい)
それを検索して全部32ビットに置き換える
⇒割とめんどくさい&後で色々修正しないといけない。

4:3で出来たソースと、thrift-as3の /lib/as3/src/org/apache/thrift にある asファイルの塊を
まとめてFLEXにインポートして使用する

ただこのままだとi64で読み込むところは全部落ちるので、色々と修正しないといけない。
i64は evernoteでは timestamp型がほとんどなので、(たとえばNote の created,updatedなど)
うまく修正しないと全部空っぽになったりするので注意。
(一応自分は http://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/crypto/rsa/BigInteger.as?r=3
 ここのらBiginteger型を参考にして、64ビット分操作するような感じで動かしました)


Leave a Reply