Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LucasBRez

ASP + Twitter + Facebook

Recommended Posts

Olá pessoal

Estou com um problema que já me fez perder muita horas :/

Tenho um site que tem um banco com noticias, quero que assim que eu criar uma noticia seja twitada no meu twitter e postada numa pagina do meu facebook. Utilizando as APIs

Olhei muitos códigos aqui no fórum, mas ou não servia ou não consegui fazer funcionar

Estou meio desesperado, quem puder me ajudar, eu agradeço muito

Abraço

Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisando pela internet, você achará alguns códigos de como postar no twitter usando o Oauth, que é a forma de autenticação utilizada no twitter.

No facebook, numa das opções dele tem como associar sua conta do twitter para aparecer suas postagens no twitter no mural do fb.

 

Quando pesquisei sobre isso, todos os exemplos eram usando php, caso tenha conhecimentos nessa linguagem, porta-la para o asp não é muito dificil, mas exemplos em asp usando o Oauth, não achei nenhum que funcionasse, infelizmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, Precisamos de dois arquivos fundamentais:

 

Arquivo de Função de acesso ao Facebook : 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  
%>  

 

e aqui um outro link twitter-oauth

 

veja este link também

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, Precisamos de dois arquivos fundamentais:

 

Arquivo de Função de acesso ao Facebook : 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  
%>  

 

e aqui um outro link twitter-oauth

 

veja este link também

 

 

Primeiramente, obrigado pela ajuda

 

Esse codigo eu testei ja e funcionou, mas eh apenas para autenticar ne? Como eu faco para postar no facebook

 

Abraco

 

Ola xanburzum,

Primeiramente obrigado por me ajudar, mas eu to meio confuso com tudo isso rsrs

Entao assim, queria explicar melhor o que eu quero para que voce se puder possa me ajudar.

Tenho um painel que posta noticias, e assim que eu postar uma noticia no meu site gostaria que ela seja postada no facebook e no twitter automaticamente.

Eu tenho ja o app do facebook, utilizei o codigo de autentificacao la e funcionou, mas eu nao sei para que ele serve direito ,

Esse site ele faz o que eu quero: http://dlvr.it/ Mas ele eh limitado na forma de como a mensagem e postada no facebook, para o twitter ele funciona do jeito que eu quero. Entao meu maior problema mesmo eh o facebook.

To meio desesperado, agraco sua ajuda

Abraco Lucas

 

 

--------------------------------------------

 

Ola galera novamente.

 

Esse codigo de twitter que voce me passou funcionou. Falta o Facebook agora

 

Uma duvida, ele sempre pede para eu logar, nao tem como eu colocar meu log-in e senha dentro, pq vou sempre twittar para a mesma conta? Principalmente porque nao sera eu que ficarei tomando conta, por isso nao quero deixar minha senha para ele, vale o mesmo para o facebook.

 

E no caso do Facebook, precisa ter um certificado de navegacao segura?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

<%
   CONST REST_URI = "http://api.facebook.com/restserver.php"
   CONST FB_PARAM_PREFIX = "fb_sig"
   CONST FB_API_VERSION = "1.0"

   Class FaceBook

       Public SecretKey
       Public ApiKey
       Public SessionKey

       Public Property Get InCanvas
        InCanvas = (Request(FB_PARAM_PREFIX & "_in_canvas") = "1")
       End Property

       Public Property Get ApplicationInstalled
        ApplicationInstalled = (Request(FB_PARAM_PREFIX & "_added") = "1")
       End Property

       Public Property Get UserID
        UserID = Request(FB_PARAM_PREFIX & "_user")
       End Property

       Public Function CallApiMethod(strMethod, oParams)
           oParams("method") = strMethod
           Dim oXMLHTTP
           Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
           oXMLHTTP.Open "GET", GenerateRequestURI(oParams), False
           oXMLHTTP.Send()
           Set CallApiMethod = oXMLHTTP.ResponseXml
       End Function

       Public Sub Redirect(strURI)
%>
<fb:redirect url="<%= strURI %>" />
<%
       End Sub

       Public Function ErrorMessage(strMsg)
           ErrorMessage = "<fb:error message=""" & strMsg & """ />"
       End Function

       Public Function SuccessMessage(strMsg)
           SuccessMessage = "<fb:success message=""" & strMsg & """ />"
       End Function

       Public Function RequireInstall()
           If (Request.Form("fb_sig_added") = "0") Then
               %>
                   <fb:redirect url="http://www.facebook.com/apps/application.php?api_key=<%= ApiKey %>" />
               <%
           End If
       End Function

       Public Function SetRefHandle(handle, fbml)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "handle", handle
           oParams.Add "fbml", fbml
           Set SetRefHandle = CallApiMethod("facebook.fbml.setRefHandle", oParams)
       End Function

       Public Function SetProfileFBML(uid, fbml)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "markup", fbml
           If (Not IsNull(uid)) Then oParams.Add "uid", uid
           Set SetProfileFBML = CallApiMethod("facebook.profile.setFBML", oParams)
       End Function

       Function FQLQuery(query)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "query", query
           Set FQLQuery = CallApiMethod("facebook.fql.query", oParams)
       End Function

       Public Sub IncludeCSS(strPath)
           Dim oFSO
           Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
           If (oFSO.FileExists(Server.MapPath(strPath))) Then
               Dim oFile
               Set oFile = oFSO.OpenTextFile(Server.MapPath(strPath))
                   %>
                   <style type="text/css">
                       <%= oFile.ReadAll() %>
                   </style>
                   <%
               Call oFile.Close()
           End If
       End Sub

       Public Property Get RequestIsValid
           Dim strItem, oRequestParams
           Set oRequestParams = Server.CreateObject("Scripting.Dictionary")
           For Each strItem In Request.Form
               If (Left(strItem, Len(FB_PARAM_PREFIX)) = FB_PARAM_PREFIX And Not strItem = FB_PARAM_PREFIX) Then
                   oRequestParams(Mid(strItem, Len(FB_PARAM_PREFIX & "_") + 1)) = Request.Form(strItem)
               End If
           Next
           RequestIsValid = (GenerateSig(oRequestParams) = Request.Form("fb_sig"))
       End Property

       Public Function Form(strKey)
           If (Len(Request.Form(strKey)) > 0) Then
               Form = Request.Form(strKey)
           Else
               If (Len(Request.Form(strKey & "[0]")) > 0) Then
                   Dim arrKey()
                   Redim arrKey(0)
                   Do While Len(Request.Form(strKey & "[" & Ubound(arrKey) & "]")) > 0
                       arrKey(Ubound(arrKey)) = Request.Form(strKey & "[" & Ubound(arrKey) & "]")
                       Redim Preserve arrKey(Ubound(arrKey) + 1)
                   Loop
                   Redim Preserve arrKey(Ubound(arrKey) - 1)
                   Form = arrKey
               End If
           End If
       End Function

       Public Function SendNotificationRequest(to_ids, req_type, content, image, boolInvite)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "to_ids", to_ids
           oParams.Add "type", req_type
           oParams.Add "content", content
           oParams.Add "image", image
           oParams.Add "invite", LCase(boolInvite)
           Set SendNotificationRequest = CallApiMethod("facebook.notifications.sendRequest", oParams)
       End Function

       Private Sub Class_Initialize()
           If (Len(Request(FB_PARAM_PREFIX & "_api_key")) > 0) Then ApiKey = Request(FB_PARAM_PREFIX & "_api_key")
           If (Len(Request(FB_PARAM_PREFIX & "_session_key")) > 0) Then SessionKey = Request(FB_PARAM_PREFIX & "_session_key")
       End Sub

       Private Function GenerateRequestURI(oParams)
           If (Len(SessionKey) > 0) Then oParams("session_key") = SessionKey
           If (Len(ApiKey) > 0) Then oParams("api_key") = ApiKey
           If (Len(GetUniqueCallID()) > 0) Then oParams("call_id") = GetUniqueCallID()
           oParams("v") = FB_API_VERSION
           GenerateRequestURI = REST_URI & "?"
           Dim strItem
           For Each strItem In oParams.Keys
               GenerateRequestURI = GenerateRequestURI & strItem & "=" & Server.UrlEncode(oParams(strItem)) & "&"
           Next
           GenerateRequestURI = GenerateRequestURI & "sig=" & GenerateSig(oParams)
       End Function

       Private Function GenerateSig(oParams)
           Set oParams = SortDictionary(oParams)
           Dim strSig, strItem
           For Each strItem In oParams
               strSig = strSig & strItem & "=" & oParams(strItem)
           Next
           strSig = strSig & SecretKey
           Dim oMD5
           Set oMD5 = New MD5
           oMD5.Text = strSig
           GenerateSig = oMD5.HexMD5
       End Function

       Private Function SortDictionary(objDict)
           Dim strDict()
           Dim objKey
           Dim strKey,strItem
           Dim X,Y,Z
           Z = objDict.Count
           If Z > 1 Then
               ReDim strDict(Z,2)
               X = 0
               For Each objKey In objDict
                   strDict(X,1)  = CStr(objKey)
                   strDict(X,2) = CStr(objDict(objKey))
                   X = X + 1
               Next
               For X = 0 to (Z - 2)
                   For Y = X to (Z - 1)
                       If StrComp(strDict(X,1),strDict(Y,1),vbTextCompare) > 0 Then
                           strKey  = strDict(X,1)
                           strItem = strDict(X,2)
                           strDict(X,1)  = strDict(Y,1)
                           strDict(X,2) = strDict(Y,2)
                           strDict(Y,1)  = strKey
                           strDict(Y,2) = strItem
                       End If
                   Next
               Next
               objDict.RemoveAll
               For X = 0 to (Z - 1)
                   objDict.Add strDict(X,1), strDict(X,2)
               Next
           End If
           Set SortDictionary = objDict
       End Function

       Private Function GetUniqueCallID()
        If (Len(Application("FB_CallID")) = 0) Then Application("FB_CallID") = 1
        GetUniqueCallID = TimeStamp() & Application("FB_CallID")
        Application("FB_CallID") = Application("FB_CallID") + 1
       End Function

       Private Function TimeStamp()
        TimeStamp = Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()) & Second(Now())
       End Function

   End Class
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

<%
   CONST REST_URI = "http://api.facebook.com/restserver.php"
   CONST FB_PARAM_PREFIX = "fb_sig"
   CONST FB_API_VERSION = "1.0"

   Class FaceBook

       Public SecretKey
       Public ApiKey
       Public SessionKey

       Public Property Get InCanvas
        InCanvas = (Request(FB_PARAM_PREFIX & "_in_canvas") = "1")
       End Property

       Public Property Get ApplicationInstalled
        ApplicationInstalled = (Request(FB_PARAM_PREFIX & "_added") = "1")
       End Property

       Public Property Get UserID
        UserID = Request(FB_PARAM_PREFIX & "_user")
       End Property

       Public Function CallApiMethod(strMethod, oParams)
           oParams("method") = strMethod
           Dim oXMLHTTP
           Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
           oXMLHTTP.Open "GET", GenerateRequestURI(oParams), False
           oXMLHTTP.Send()
           Set CallApiMethod = oXMLHTTP.ResponseXml
       End Function

       Public Sub Redirect(strURI)
%>
<fb:redirect url="<%= strURI %>" />
<%
       End Sub

       Public Function ErrorMessage(strMsg)
           ErrorMessage = "<fb:error message=""" & strMsg & """ />"
       End Function

       Public Function SuccessMessage(strMsg)
           SuccessMessage = "<fb:success message=""" & strMsg & """ />"
       End Function

       Public Function RequireInstall()
           If (Request.Form("fb_sig_added") = "0") Then
               %>
                   <fb:redirect url="http://www.facebook.com/apps/application.php?api_key=<%= ApiKey %>" />
               <%
           End If
       End Function

       Public Function SetRefHandle(handle, fbml)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "handle", handle
           oParams.Add "fbml", fbml
           Set SetRefHandle = CallApiMethod("facebook.fbml.setRefHandle", oParams)
       End Function

       Public Function SetProfileFBML(uid, fbml)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "markup", fbml
           If (Not IsNull(uid)) Then oParams.Add "uid", uid
           Set SetProfileFBML = CallApiMethod("facebook.profile.setFBML", oParams)
       End Function

       Function FQLQuery(query)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "query", query
           Set FQLQuery = CallApiMethod("facebook.fql.query", oParams)
       End Function

       Public Sub IncludeCSS(strPath)
           Dim oFSO
           Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
           If (oFSO.FileExists(Server.MapPath(strPath))) Then
               Dim oFile
               Set oFile = oFSO.OpenTextFile(Server.MapPath(strPath))
                   %>
                   <style type="text/css">
                       <%= oFile.ReadAll() %>
                   </style>
                   <%
               Call oFile.Close()
           End If
       End Sub

       Public Property Get RequestIsValid
           Dim strItem, oRequestParams
           Set oRequestParams = Server.CreateObject("Scripting.Dictionary")
           For Each strItem In Request.Form
               If (Left(strItem, Len(FB_PARAM_PREFIX)) = FB_PARAM_PREFIX And Not strItem = FB_PARAM_PREFIX) Then
                   oRequestParams(Mid(strItem, Len(FB_PARAM_PREFIX & "_") + 1)) = Request.Form(strItem)
               End If
           Next
           RequestIsValid = (GenerateSig(oRequestParams) = Request.Form("fb_sig"))
       End Property

       Public Function Form(strKey)
           If (Len(Request.Form(strKey)) > 0) Then
               Form = Request.Form(strKey)
           Else
               If (Len(Request.Form(strKey & "[0]")) > 0) Then
                   Dim arrKey()
                   Redim arrKey(0)
                   Do While Len(Request.Form(strKey & "[" & Ubound(arrKey) & "]")) > 0
                       arrKey(Ubound(arrKey)) = Request.Form(strKey & "[" & Ubound(arrKey) & "]")
                       Redim Preserve arrKey(Ubound(arrKey) + 1)
                   Loop
                   Redim Preserve arrKey(Ubound(arrKey) - 1)
                   Form = arrKey
               End If
           End If
       End Function

       Public Function SendNotificationRequest(to_ids, req_type, content, image, boolInvite)
           Dim oParams
           Set oParams = Server.CreateObject("Scripting.Dictionary")
           oParams.Add "to_ids", to_ids
           oParams.Add "type", req_type
           oParams.Add "content", content
           oParams.Add "image", image
           oParams.Add "invite", LCase(boolInvite)
           Set SendNotificationRequest = CallApiMethod("facebook.notifications.sendRequest", oParams)
       End Function

       Private Sub Class_Initialize()
           If (Len(Request(FB_PARAM_PREFIX & "_api_key")) > 0) Then ApiKey = Request(FB_PARAM_PREFIX & "_api_key")
           If (Len(Request(FB_PARAM_PREFIX & "_session_key")) > 0) Then SessionKey = Request(FB_PARAM_PREFIX & "_session_key")
       End Sub

       Private Function GenerateRequestURI(oParams)
           If (Len(SessionKey) > 0) Then oParams("session_key") = SessionKey
           If (Len(ApiKey) > 0) Then oParams("api_key") = ApiKey
           If (Len(GetUniqueCallID()) > 0) Then oParams("call_id") = GetUniqueCallID()
           oParams("v") = FB_API_VERSION
           GenerateRequestURI = REST_URI & "?"
           Dim strItem
           For Each strItem In oParams.Keys
               GenerateRequestURI = GenerateRequestURI & strItem & "=" & Server.UrlEncode(oParams(strItem)) & "&"
           Next
           GenerateRequestURI = GenerateRequestURI & "sig=" & GenerateSig(oParams)
       End Function

       Private Function GenerateSig(oParams)
           Set oParams = SortDictionary(oParams)
           Dim strSig, strItem
           For Each strItem In oParams
               strSig = strSig & strItem & "=" & oParams(strItem)
           Next
           strSig = strSig & SecretKey
           Dim oMD5
           Set oMD5 = New MD5
           oMD5.Text = strSig
           GenerateSig = oMD5.HexMD5
       End Function

       Private Function SortDictionary(objDict)
           Dim strDict()
           Dim objKey
           Dim strKey,strItem
           Dim X,Y,Z
           Z = objDict.Count
           If Z > 1 Then
               ReDim strDict(Z,2)
               X = 0
               For Each objKey In objDict
                   strDict(X,1)  = CStr(objKey)
                   strDict(X,2) = CStr(objDict(objKey))
                   X = X + 1
               Next
               For X = 0 to (Z - 2)
                   For Y = X to (Z - 1)
                       If StrComp(strDict(X,1),strDict(Y,1),vbTextCompare) > 0 Then
                           strKey  = strDict(X,1)
                           strItem = strDict(X,2)
                           strDict(X,1)  = strDict(Y,1)
                           strDict(X,2) = strDict(Y,2)
                           strDict(Y,1)  = strKey
                           strDict(Y,2) = strItem
                       End If
                   Next
               Next
               objDict.RemoveAll
               For X = 0 to (Z - 1)
                   objDict.Add strDict(X,1), strDict(X,2)
               Next
           End If
           Set SortDictionary = objDict
       End Function

       Private Function GetUniqueCallID()
        If (Len(Application("FB_CallID")) = 0) Then Application("FB_CallID") = 1
        GetUniqueCallID = TimeStamp() & Application("FB_CallID")
        Application("FB_CallID") = Application("FB_CallID") + 1
       End Function

       Private Function TimeStamp()
        TimeStamp = Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now()) & Second(Now())
       End Function

   End Class
%>

 

Não entendi o que ele faz

Compartilhar este post


Link para o post
Compartilhar em outros sites

são varias funções da classe (API) do facebook, execute-as para ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

consulte também a página de senvolvedor do Facebook e use e abuse das APIS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá xanburzum

 

 

Desculpa se eu to sendo muito burro hauha

Mas eu não to entendendo muito isso

Com esse código consigo fazer a autentificação do aplciativo, até ai tudo certo.

Mas o que eu quero é postar no mural da minha página, como prossigo?

Acho que tem duas coisas que eu ainda preciso:

1) Conseguir postar na minha pagina

2) Fazer isso sem precisar logar (apenas por codigo)

 

Consegui isso com o Twitter, se quiserem depois posto o código (é em PHP)

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

entra na pagina de desenvolvedor do facebook, lá você pode baixar a API deles e usar

tem também tutoriais e exemplos

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste o code em php , para eu ver , assim, podemo se basear nele, mas consulte a página de desenvolvedor do Fcebook

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, pessoal, não sei se ajuda, pois não cheguei a terminar, pois tive que trabalhar em um outro projeto, mas fiz algo com javascript.

 

Criei uma aplicação pra mim (como já foi passado o link mais acima), e usei isso:

 

<div id="fb-root"></div>
<script>
 window.fbAsyncInit = function() {
   FB.init({
     appId      : 'xxxxxxxxx', // App ID
     channelUrl : '//www.seusite.com/caminhododiretorio/canal.html', // Channel File
     status     : true, // check login status
     cookie     : true, // enable cookies to allow the server to access the session
     xfbml      : true  // parse XFBML
   });

   // Additional initialization code here
 };

 // Load the SDK Asynchronously
 (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));
</script>

<script>
var publish = {
 method: 'feed',
 message: 'uma primeira mensagem',
 name: 'Connect',
 caption: 'Primeiro Post automático no facebook',
 description: (
     'A small JavaScript library that allows you to harness ' +
     'the power of Facebook, bringing the user\'s identity, ' +
     'social graph and distribution power to your site.'
 ),
 link: 'http://www.tenq.com.br/',
 picture: 'http://www.tenq.com.br/f8.jpg',
 actions: [
   { name: 'tenq', link: 'http://www.tenq.com.br/' }
 ],
 user_message_prompt: 'Compartilhe tudo'
};

FB.ui(publish, Log.info.bind('feed callback'));
</script>
<script>
<!--
function publishWallPost(slug) {
   var attachment = {'name':'titulo aqui','description':'uma mensagem aqui','media':[{'type':'image','src':'http://www.tenq.com.br/images/facebook_image.png','href':'http://www.tenq.com.br/pagina/'}]};
   FB.ui({
       method: 'stream.publish',
       message: 'I apenas gostei deste super site, hehehe!',
       attachment: attachment,
       user_message_prompt: 'postar no fb?'
   });
}
//-->
</script>
<a href="#" onclick="publishWallPost('Ronaldo')"> Enviar ao faceboo </a>
</body>
</html>

 

No arquivo "canal.html", inclua:

 

<script src="//connect.facebook.net/en_US/all.js"></script>

 

Espero que ajude... se conseguir melhorar e puder postar aqui, agradeço... inclusive, gostaria de ver como ficou o seu arquivo para postar no twitter...

 

sds

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Ronaldo, primeiramente obrigado pela ajuda.

Mas acho que nao me ajudo muito, porque eh preciso estar logado no facebook para poder postar.

O meu objetivo eh deixar as credenciais da minha conta no codigo e ele fazer o log-in para mim porque nao sera eu que postarei e nao posso falar minha senha para a outra pessoa, e se ela logar com a conta dela sera postado na conta dela

Quero exatamente o que esse codigo faz (no caso do twitter):

 

O codigo esta aqui: http://classicaspreference.com/aspexamples/twitter_php_status_updates_with_oauth.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a API

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.