Neo Inspiration

Avatar

中の人:jakkrokk (HN統一しました) がphp,javascript,air,flex などなど好き勝手書いてます。仕事は主にWEBシステムの設計と開発、SEO全般など。

SEO難易度調査ツールを作ってみました

もっと時間がかかるけど精度が高いのはたぶんいらないと思うので、
精度と時間のバランスをとったヤツを作ってみました。

SEO難易度調査ツール

ビジネスセンスのある人はきっとここで、
調査結果にSEO会社の広告でものせるんだろうけどw
このたぐいのものがどの程度ニーズあるのか的な調査もあるので
とりあえず使ってもらう形にしました。

精度は高いと思います。
100%じゃないですが、100%出せるツールは少なくともフリーじゃ出回ってないですしね。

精度が高いのはきっとうちの商材を売るために
業務用として公開(うちの会社で)すると思いますw

検索1発でGoogleをバグらす方法

たまたま見つけたのでw

これでGoogleで検索してください。

allintext:"aiueo"

別に aiueo はなんでもいいんですが、
このコマンドをGoogleにぶちこむと自分のPCだと
100%

申し訳ありません

... コンピュータ ウィルスやスパイウェア アプリケーションの自動リクエストと類似したクエリが送信されました。 ユーザーを保護するため、このリクエストをすぐに処理することはできません。

の画面になります。

もちろんコロンはずせば

allintext:aiueo

ちゃんと機能するので別におかしいわけじゃないんだけど。

まあ理由もなんとなく想像つきますがw

AirでGoogleにログインする

Airで というよりも jqueryで というほうが正しいきもしますが、
seo-webmasterではRESTでGoogleにログインするわけですが、
実装はこんなかんじの雑なソースになっております。

    var auth_url = "https://www.google.com/accounts/ClientLogin";
    var auth_id = $("#auth_id").val(); //フォームのIDを取得
    var auth_pass = $("#auth_pass").val(); //フォームのパスワードを取得

    $.ajax({
        url : auth_url,
        type : "POST",
        data  : {"accountType":"GOOGLE","Email":auth_id,"Passwd":auth_pass,"service":"サービス名","source":"ソース名"},
        error : function(XMLHttpRequest, textStatus, errorThrown){
            //エラー処理
        },
        success: function(rs) {
            var token = rs.match(/Auth=([a-zA-Z0-9_\-]+)/); //ここでトークンを切り出して保存する
            $('#SITE-TOKEN').val(token[1]);
        }
    });

これはPOSTなので、いいのですが、次はサイトの認証。
こっちはPUTを使います。

    var webmaster_url = "https://www.google.com/webmasters/tools/feeds/sites/" + encodeURIComponent(サイトID).replace(/\./g,"%2E");
    var token = $('#SITE-TOKEN').val()//認証トークン;

    //送信するXMLを生成する
    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:wt='http://schemas.google.com/webmasters/tools/2007'><atom:id>" + site_id + "</atom:id><atom:category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/webmasters/tools/2007#site-info'/><wt:verification-method type='htmlpage' in-use='true'/></atom:entry>";

    $.ajax({
        url : webmaster_url,
        type : "PUT",
        processData : false, //デフォルトがtrueなので必ずきってく
        dataType:"xml", //なくても動いたけど一応 受信コンテンツタイプの指定
        contentType : "application/atom+xml; charset=UTF-8", //コンテンツタイプXMLにしないとデフォルトが urlencodedなのでエラーになる
        data: xml, //送信xml
        beforeSend : function(req) {
            //ログイン時の認証トークンを送る
            req.setRequestHeader('Authorization', 'GoogleLogin auth=' + token);
        },
        error : function(XMLHttpRequest, textStatus, errorThrown){
            //エラー処理
        },
        success: function(rs) {
            //成功時の処理
        }
    });

ポイントとしては processData をきることと、
contentType をちゃんとatom+xmlにすること、
それからbeforeSendでsetRequestHeaderにトークンを埋め込むことかなー

ここらへんのリファレンスみたいなのがあんまなくて(読みかたがわからないだけかも)
適当に大文字にしたり小文字にしたり半角スペース入れたり
してたら通った感じなので、もしかしたら間違ってるかも。

AirでGoogle認証を使うならこんなかんじで試してみてください。

Continue Next page

Twitter