Ronaldo Faria Storck Eler 2 Denunciar post Postado Setembro 1, 2011 Olá pessoal, Vi alguns topicos, copiei alguns códigos e nada, não consegui acessar o facebook da minha aplicação. Bem, o que pretendo fazer: - toda vez que o meu cliente postar uma notícia no site dele, quero que seja postado no facebook automaticamente no login dele. Alguém pode me ajudar? só encontrei exemplos nas novas api's em php, e realmente não é a minha praia... vi algo sobre stream graph, mas nada de concreto, até mesmo os endereços que encontrei para gerar o token não consegui acessar, nem tão pouco o wiki de desenvolvedores (se é que ainda existe, pois vi em um post mais antigo)... Desde já obrigado aos que puderem ajudar... sds Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Setembro 1, 2011 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
Ronaldo Faria Storck Eler 2 Denunciar post Postado Setembro 1, 2011 Olá xanburzum, obrigado pela resposta, mas este conteúdo eu já havia salvo de um post seu anterior, mas me parece (pelo que li) que a api deles agora é outra... mas como sou leigo em chamada de classes, tem algum exemplo da chamada desta classe? sds Compartilhar este post Link para o post Compartilhar em outros sites
saloeric 1 Denunciar post Postado Setembro 2, 2011 Estou a precisar do mesmo... Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Setembro 2, 2011 entra no site no facebook m API em baixa a nova então Compartilhar este post Link para o post Compartilhar em outros sites
Ronaldo Faria Storck Eler 2 Denunciar post Postado Setembro 2, 2011 bom, só quis informar o que já havia tentando... tudo bem... vou tentar fazer isso... sds Compartilhar este post Link para o post Compartilhar em outros sites
saloeric 1 Denunciar post Postado Setembro 6, 2011 Encontrei uma aplicação que faz isso, http://www.rssgraffiti.com/ , você informa uma rss com o conteúdo que quer e ele publica no mural, só ainda não consegui foi pôr a funcionar, mas tente você... Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Setembro 6, 2011 Eu fiz um mês passado, vou organizar e colocar no fórum para a galera acessar Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Setembro 6, 2011 Como prometido: http://tedk.com.br/blog/index.php/2011/09/06/autenticando-facebook-com-asp/ Compartilhar este post Link para o post Compartilhar em outros sites
Ronaldo Faria Storck Eler 2 Denunciar post Postado Setembro 9, 2011 Olá a todos, obrigado pela ajuda, assim que fizer os testes posto aqui, infelizmente surgiu um imprevisto e não poderei realizá-los antes do dia 20/09... obrigado mais uma vez... sds Compartilhar este post Link para o post Compartilhar em outros sites
retrolink 0 Denunciar post Postado Setembro 13, 2011 Ted ficou simples e muito funcional seu code. Compartilhar este post Link para o post Compartilhar em outros sites
paginad 0 Denunciar post Postado Fevereiro 7, 2012 Olá. To fazendo a conexão com base no seu exemplo, so to usando o FB.init com um reload, ele faz a autorização certinho, mais no retorno, não consigo pegar o user.id para gravar na minha base. Não tem nada no token. Na minha página para o usuário logar, está assim. <div align="center"><fb:login-button perms="email,offline_access,publish_stream"></fb:login-button></div> <div id="fb-root"></div> <script src="http://connect.facebook.net/pt_BR/all.js"></script> <script> FB.init({appId: '<%=FACEBOOK_APP_ID%>', status: true, cookie: true, xfbml: true}); FB.Event.subscribe('auth.login', function(response) { window.location.reload(); }); </script> A função para pegar o token está assim, mas não vem nada no token. <% main Function main Dim strJSON Dim URL Dim sToken Dim user Dim loc set cookie = get_facebook_cookie( FACEBOOK_APP_ID, FACEBOOK_SECRET ) Response.Write cookie.count 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") end if End Function %> Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Fevereiro 7, 2012 ele esta gerando algum erro ? Compartilhar este post Link para o post Compartilhar em outros sites
paginad 0 Denunciar post Postado Fevereiro 8, 2012 Na verdade o cookie.count vem como 0. Ai não entra no IF. Tudo parece estar certinho, faço toda a autorização, ele da refresh na página, mais o cookie vem 0. cookie("access_token") tb não vem nada. To ficando louco, vesgo, tudo que tem direito, e isso nao sai. Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Fevereiro 8, 2012 os parametros na função esta vindo normal? FACEBOOK_APP_ID, FACEBOOK_SECRET Compartilhar este post Link para o post Compartilhar em outros sites
paginad 0 Denunciar post Postado Fevereiro 9, 2012 Sim esses 2 parametros estao OK. Eles sao passados na funcao. Cara, deve ser alguma besteira como sempre..rss você tem como testar esse codigo? Compartilhar este post Link para o post Compartilhar em outros sites
xanburzum 169 Denunciar post Postado Fevereiro 9, 2012 vou testá-lo, vamos ver Compartilhar este post Link para o post Compartilhar em outros sites
paginad 0 Denunciar post Postado Fevereiro 9, 2012 Conseguiu? Compartilhar este post Link para o post Compartilhar em outros sites