none
Pings do Google Sitemap. RRS feed

  • Pergunta

  • Olá pessoal tudo bom.

    Desenvolvi um gerador de sitemap de um site que fiz em .net preciso sincronizar com o google para as seguintes realizações.

    O processo de automatização dos pings serve para informar aos servidores do Google sobre as
    mudanças realizadas no arquivo Sitemap.xml. O Google não envia mais de um ping por hora, dessa
    forma, o administrador do website pode automatizar esse processo utilizando um pequeno script PHP
    conforme mostrado abaixo:

    <?php
    //cria um novo curl
    $ch = curl_init();
    $url = 'https://www.google.com/webmasters/sitemaps/ping?sitemap=http://'.
    $_SERVER['HTTP_HOST'].'/Sitemap.xml';
    //seta a URL e outras opcoes
    23
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //executa o script
    $response = curl_exec($ch);
    //fecha a execucao
    curl_close($ch);
    //nome do arquivo de log
    $logFile = "googleping.txt";
    //abre o arquivo de log
    $fileHandle = fopen($logFile, a);
    //grava no arquivo o comando executado
    fwrite($fileHandle, $response . "\n\n---------------------------------\n\n");
    //imprime na tela o log da última requisicao
    print '
    <pre>' . $response . '</pre>
    <p>
    <a href="javascript:history.back()" title="Voltar para p&aacute;gina
    anterior">&laquo; Voltar para p&aacute;gina anterior</a>
    </p>';
    ?>

    Como todos podem observar esta em php.

    1º  queria saber se tem como fazer isso em .net?

    2º As regras que o google aplica permite que isso seja desenvolvido em .net?

    Obrigado.

    Att;




    • Editado Romy Moura terça-feira, 21 de agosto de 2012 13:43
    terça-feira, 21 de agosto de 2012 13:41

Respostas

  • Pessoal consegui fazer.

    //c#

    public ActionResult Curl()
            {
    
                var cli = new System.Net.WebClient();
                string data = cli.DownloadString(@"https://www.google.com/webmasters/sitemaps/ping?sitemap=" + ConfigurationManager.AppSettings["Aplicacao"] + "Sitemap.xml");
                return this.Json(new { Result = data }, JsonRequestBehavior.AllowGet);
            }

        $("#btnSincronizarGoogle").click(function () {
            $.ajax(
            {
                type: "POST",
                url: "/Sitemap/Curl",
                contentType: "application/json",
                data: JSON.stringify(), //serializar ojeto para action,
                processData: false,
                success:
                    function (Data) {
                        var t = Data.Result;
                        writeConsole(t);
                    }
            });
        });
    
        function writeConsole(content) {
    
            top.consoleRef = window.open('', 'myconsole',
                              'width=350,height=250'
                               + ',menubar=0'
                               + ',toolbar=1'
                               + ',status=0'
                               + ',scrollbars=1'
                               + ',resizable=1')
            top.consoleRef.document.writeln(
                              '<html><head><title>Console</title></head>'
                               + '<body bgcolor=white onLoad="self.focus()">'
                               + content
                               + '</body></html>'
                             )
            top.consoleRef.document.close()
        }

    Funciona muito bem.

    Abraço.

    • Marcado como Resposta Romy Moura quarta-feira, 22 de agosto de 2012 22:29
    quarta-feira, 22 de agosto de 2012 22:29