Ir para conteúdo
Fórum Script Brasil

Ted k'

Membros
  • Total de itens

    252
  • Registro em

  • Última visita

Posts postados por Ted k'

  1. Olá galera, vou mostrar como usar ASP para autenticar sua aplicação no Facebook.

    Precisamos de dois arquivos fundamentais:

    Arquivo de Função de acesso ao Facebook (achei na net, não lembro o autor, mais não tirei o cabeçalho): LINK

    Arquivo de configuração jSON para ASP (retirado do site oficial do jSON: LINK.

    Você vai precisar de uma função de base64, eu adicionei a de Encode e Decode, caso precisem em outros projetos.

    Você precisa adicionar o ID da sua aplicação, A URL de retorno (não precisa mudar a query que coloquei, facilita a autenticação em um arquivo só), e as permissões em sequencia (isso você acha no facebook developer).

    Eu salvei tudo em Session, o token, o signed request e o ID do usuário do facebook:

    set user = JSON.parse(base64Decode(playload))
    session("signed_request") = request("signed_request")
    session("oauth_token") = user.oauth_token
    session("id_atual") = user.user_id
    response.redirect("pagina.asp")
    E Adicionei um Redirect para quando estiver autenticado: Segue o Código completo:
    <script language="javascript" runat="server" src="json2.asp"></script>
    <!-- #include file="fb_app.asp" -->
    <%
    session.lcid = 1046
    session.timeOut = 1440
    server.scriptTimeOut = 999999999
    
    if (request.QueryString("logar") = "") then
        main
        function main
            dim strJSON
            dim URL
            dim sToken
            dim user
            dim loc
    
            set cookie = get_facebook_cookie( FACEBOOK_APP_ID, FACEBOOK_SECRET )
            if cookie.count > 0 then
                response.write "Logado... Ok! <br/>"
                sToken = cookie("access_token")
                url = "https://graph.facebook.com/me?access_token=" & sToken
                strJSON = get_page_contents(URL) 
    
                set user = JSON.parse(strJSON)
                response.write cookie("access_token")
            else
                link = "http://www.facebook.com/dialog/oauth?client_id=ID_DA_SUA_APLICAÇÃO&redirect_uri="&server.URLEncode("http://apps.facebook.com/NOME_DA_MINHA_APP/autenticacao.asp?logar=ok")&"&scope=offline_access,user_location,email,publish_stream,user_birthday,read_friendlists"
                response.write("<script>top.location.href='" & link & "';</script>")
            end if
        end function
    else
        const BASE_64_MAP_INIT ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
        dim nl
        dim Base64EncMap(63)
        dim Base64DecMap(127)
    
        public sub initCodecs()
            nl = "<P>" & chr(13) & chr(10)
            dim max, idx
               max = len(BASE_64_MAP_INIT)
            for idx = 0 to max - 1
                 Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
            next
            for idx = 0 to max - 1
                 Base64DecMap(asc(Base64EncMap(idx))) = idx
            next
        end sub
    
        public function base64Encode(plain)
            if len(plain) = 0 then
                 base64Encode = ""
                 exit function
            end if
            dim ret, ndx, by3, first, second, third
            by3 = (len(plain) \ 3) * 3
            ndx = 1
            do while ndx <= by3
                 first  = asc(mid(plain, ndx + 0, 1))
                 second = asc(mid(plain, ndx + 1, 1))
                 third  = asc(mid(plain, ndx + 2, 1))
                 ret = ret & Base64EncMap((first \ 4) and 63)
                 ret = ret & Base64EncMap(((first * 16) and 48) + ((second \ 16) and 15))
                 ret = ret & Base64EncMap(((second * 4) and 60) + ((third \ 64) and 3))
                 ret = ret & Base64EncMap(third and 63)
                 ndx = ndx + 3
            loop
            if by3 < len(plain) then
                 first  = asc(mid(plain, ndx + 0, 1))
                 ret = ret & Base64EncMap((first \ 4) and 63)
                 if (len(plain) MOD 3) = 2 then
                      second = asc(mid(plain, ndx+1, 1))
                      ret = ret & Base64EncMap(((first * 16) and 48) + ((second \ 16) and 15))
                      ret = ret & Base64EncMap(((second * 4) and 60))
                 else
                      ret = ret & Base64EncMap((first * 16) and 48)
                      ret = ret & "="
                 end if
                 ret = ret & "="
            end if
            base64Encode = ret
        end function
    
        public function base64Decode(scrambled)
            if len(scrambled) = 0 then
                 base64Decode = ""
                 exit function
            end if
            dim realLen
            realLen = len(scrambled)
            do while mid(scrambled, realLen, 1) = "="
                 realLen = realLen - 1
            loop
            dim ret, ndx, by4, first, second, third, fourth
            ret = ""
            by4 = (realLen \ 4) * 4
            ndx = 1
            do while ndx <= by4
                 first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
                 second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
                 third  = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
                 fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
                 ret = ret & chr(((first * 4) and 255) + ((second \ 16) and 3))
                 ret = ret & chr(((second * 16) and 255) + ((third \ 4) and 15))
                 ret = ret & chr(((third * 64) and 255) + (fourth and 63))
                 ndx = ndx + 4
            loop
            if ndx < realLen then
                 first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
                 second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
                 ret = ret & chr(((first * 4) and 255) + ((second \ 16) and 3))
                 if realLen mod 4 = 3 then
                      third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
                      ret = ret & chr(((second * 16) and 255) + ((third \ 4) and 15))
                 end if
            end if
            base64Decode = ret
        end function
        call initCodecs
    
        splitvar = split(request("signed_request"), ".")
        encoded_sig = splitvar(0)
        playload = splitvar(1)
    
        set user = JSON.parse(base64Decode(playload))
        session("signed_request") = request("signed_request")
        session("oauth_token") = user.oauth_token
        session("id_atual") = user.user_id
        response.redirect("animacao.asp")
    end if
    %>

    Espero que ajude. Abraços

  2. <%
    class UserTwitter
    private objXMLDOM
    private raiz, i
    public nome, screen_name, location
    public profile_image_url, url
    public followers_count, friends_count
    public favourites_count, statuses_count
    public time_zone, profile_background_color
    public profile_text_color, profile_link_color
    public profile_sidebar_fill_color, profile_sidebar_border_color
    public profile_background_image_url
    
    public sub LerXML()
    set objXMLDOM = server.createObject("MSXML2.DOMDocument.3.0")
    objXMLDOM.async = false
    objXMLDOM.setProperty "ServerHTTPRequest", true
    objXMLDOM.validateOnParse = false
    objXMLDOM.load("http://twitter.com/users/show/"&request.queryString("username")&".xml")
    
    set raiz = objXMLDOM.getElementsByTagName("*")
    
    for i = 0 to raiz.length - 1
    select case (raiz.item(i).nodeName)
    case ("name")                             : tw.nome                             = raiz.item(i).text
    case ("screen_name")                     : tw.screen_name                     = raiz.item(i).text
    case ("location")                         : tw.location                         = raiz.item(i).text
    case ("profile_image_url")                 : tw.profile_image_url                 = raiz.item(i).text
    case ("url")                             : tw.url                             = raiz.item(i).text
    case ("followers_count")                 : tw.followers_count                 = raiz.item(i).text
    case ("friends_count")                     : tw.friends_count                     = raiz.item(i).text
    case ("favourites_count")                 : tw.favourites_count                 = raiz.item(i).text
    case ("statuses_count")                 : tw.statuses_count                 = raiz.item(i).text
    case ("time_zone")                         : tw.time_zone                         = raiz.item(i).text
    case ("profile_background_image_url")    : tw.profile_background_image_url    = raiz.item(i).text
    case ("profile_background_color")         : tw.profile_background_color         = ucase(raiz.item(i).text)
    case ("profile_text_color")                : tw.profile_text_color                = ucase(raiz.item(i).text)
    case ("profile_link_color")                : tw.profile_link_color                = ucase(raiz.item(i).text)
    case ("profile_sidebar_fill_color")     : tw.profile_sidebar_fill_color     = ucase(raiz.item(i).text)
    case ("profile_sidebar_border_color")     : tw.profile_sidebar_border_color     = ucase(raiz.item(i).text)
    end select
    next
    set objXMLDOM = nothing
    end sub
    
    end class
    
    set tw = new UserTwitter
    tw.LerXML()
    %>

    Resultado:

    exemplo_api_twitter1.gif

    Baixe o Arquivo completo AQUI

  3. Olá amigo, de primeira mão, teu layout está bom, alguns elementos meios que "diferentes" irei citar eles:

    + Você poderia colocar o MENU entre o TOPO e o MEIO do site, ficaria mais LOCALIZADO e diminuir a altura dele, está meio "grande":

    + A sua busca "Produre Produtos" poderia estar em cima, com mais destaques, preferivel no lado direito, em cima do produtos em destaque:

    + Dê mais espaços dentro dos produtos, e coloque mais informações e o botão "ORÇAR" também direto :) :

    + Coloca mais êfase no rodapé, colocando logos de cartoes, caso use em sua loja, ou endereço mais visível com o numero de telefone mais localizado.

    Bom layout o seu, legal teu efeito no MENU e organize mais seu código fonte, está super louco, hehe!!

    parabéns!!

×
×
  • Criar Novo...