IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

Twitter で ActionScript 3.0 のクライアントが出てこない理由

ActionScript 3.0 + JavaScript でブラウザなんだけど、サーバを介さずに Twitter とやりとりできるツールを作った。

AS はこんな感じ

:
        var loader:URLLoader = new URLLoader();
        var req:URLRequest = new URLRequest(API_PREFIX + apiName + API_SUFFIX);

        req.method = 'POST';
        req.requestHeaders = [];
        if (opts != null) {
            var variables:URLVariables = new URLVariables();
            for (var propName:String in opts) {
                variables[propName] = opts[propName];
            }
            req.data = variables;
        }

        if (callback != null) {
            loader.addEventListener('complete', function(e:Event):void {
                callback(e.target.data);
            });
        }

        loader.load(req);
:

しかし!!!!

localhost ではちゃんと動いていたのに・・・・。サーバに置いた途端動かなくなっちゃった!!!
んー?と思って ngrep してみたら

HTTP/1.1 401 Unauthorized.
:
(略)
:
Sorry, due to abusive behaviour, we have been forced to disable posting from external websites. If you are posting from an API tool, please ensure that the HTTP_REFERER header is not set.

えええええええ!

じゃあ、Referer 消せばいいんだな。これを追加してっと。

        req.requestHeaders = [
            new URLRequestHeader('Referer', '')
        ];

しかし!!!

ArgumentError: Error #2096: The HTTP request header Referer cannot be set via ActionScript.
    at flash.net::URLStream/load()
    at flash.net::URLLoader/load()
:
:

えええええええええええええええええええええええ!!

Twitter が AS3 のライブラリとか出してるから、てっきりできると思ったのにー><
できないなら、もっと早くいってよおおおおおおおおおおおお!!
まじで。俺の深夜の貴重な時間を返せええええええ

はあ。