代码之家  ›  专栏  ›  技术社区  ›  grapkulec

flex 4:在RIA中使用谷歌API而不使用服务器端代码?

  •  0
  • grapkulec  · 技术社区  · 16 年前

    为了确认我从阅读RIA(flex 4和actionscript)中使用google api的内容,没有办法直接从RIA连接到blogger api,因为google的crossdomain.xml文件,对吧?

    所以,如果我想使用他们的API来获取一些数据,比如我邮箱的内容或我博客上的文章列表,我必须有一些运行在服务器端的代码,RIA将使用这些代码作为httpservice来从Google收集数据?

    或者我完全弄错了?

    1 回复  |  直到 13 年前
        1
  •  1
  •   Taryn Frank Pearson    13 年前

    不,你是对的。当然,还有黑暗魔法的解决方法:

    1. 嵌入一个签名的Java小程序。如果用户接受证书,它实际上拥有任何权限。绑定端口并将其用于Flash和Java(TCP)之间的通信。请务必响应策略文件请求,否则Flash将自动关闭连接。

    2. 获取DNS服务器。当用户打开会话时,生成一个子域,例如sessionid.yourdomain.tl,该子域的TTL非常短,映射到您自己的服务器。第一个请求是一个额外的SWF文件,即“代理”。在该请求之后,将子域重新映射到Google服务器。因此,flash播放器被诱使感知代理和目标API具有相同的来源。确保代理允许从容器访问,并创建一个小界面,允许应用程序通过代理发出URL请求。

    编辑:

    第一种方法实际上是可行的: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/rsa_signing.html . 我认为在Java和Flash之间实现轻量级TCP协议更容易,但另一种选择是基于Flash和GT;不知道在Java中是否有用于处理HTTP请求的库。

    至于第二种方法,您可以使用 BIND with DLZ . 一旦启动并运行了数据库,修改数据库就足够了。

    同样,拥有一个中间服务器也是最安全的解决方案。尽管你可能会认为谷歌的一些API每天每键都是有限的。 每IP . 你应该检查一下以避免出现问题。几年前,我们在使用谷歌的API进行地理编码时遇到了这个问题。