Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, quanto tempo!
Seguinte, tenho uma página que lê, colocando o login e senha do twitter, um xml com as mentions que fizeram do usuário.
Só que o twitter desativou hoje(exatamente um dia após o projeto ser aprovado) o Basic Authentication e está implementando o OAuth, Open Authentication. Assim você não precisa passar o login e senha para as API's que gostaria de usar, tem um sistema de token que eu entendi +/-
Segundo https://twitter.com/themattharris um dos que desenvolveram essa api que captura os mentions, eles já desativaram o Basic Auth e o OAuth já tá rolando.
O problema é como me "logar" na página com esse novo sistema de OAuth para continuar capturando os dados do XML
Nessa página tem alguns exemplos, mas em outras linguagens que não sou muito familiarizado ainda:
https://apiwiki.twitter.com/OAuth-Examples
Como fazer esse OAuth em ASP?
Abaixo segue um exemplo de código de como era feito com o Basic Authentication
Abraços!
<%
twitter_usuario = "usuario"
twitter_senha = "senha"
xml = "http://" & twitter_usuario & ":" & twitter_senha & "@api.twitter.com/1/statuses/mentions.xml"
Set objSrvHTTP = Server.CreateObject("MSXML2.XMLHTTP.3.0")
objSrvHTTP.open "GET", xml, false
objSrvHTTP.setRequestHeader "Content-Type", "text/xml"
objSrvHTTP.Send()
strXML = objSrvHTTP.ResponseXML.xml
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
objXML.loadXML(strXML)
Set raizxml = objXML.documentElement
response.write raizxml.childNodes(0).text
%>
Eu vi esse exemplo, mas aonde pego os valores desses parâmetros pro meu exemplo?
Não consegui liberar o acesso dessa página à minha conta como diz em:
http://support.twitter.com/articles/76052-how-to-connect-to-third-party-applications
Dim objOAuth : Set objOAuth = New cLibOAuth
objOAuth.ConsumerKey = OAUTH_EXAMPLE_CONSUMER_KEY
objOAuth.ConsumerSecret = OAUTH_EXAMPLE_CONSUMER_SECRET
objOAuth.EndPoint = TWITTER_OAUTH_URL_REQUEST_TOKEN
objOAuth.RequestMethod = OAUTH_REQUEST_METHOD_GET
objOAuth.TimeoutURL = OAUTH_EXAMPLE_TIMEOUT_URL
No caso não posso te ajudar ainda pois ainda não testei essa classe, vou ver se ainda hoje consigo fazer uns testes aqui.
[]'s
olha este link, pode te ajudar
Tentei de tudo enão consegui nada...
Onde tem que mudar as configurações?
Puis consumer key, secret... e nada...
Alguem da um help?
Qual amaneira mais facil de se acessar a api e postar por ela? Por ASP ou PHP?
Tentei das 2 maneiras e sempre da algum erro...
HELP-ME!
eu consegui alguns avanços usando o exemplo do vbscript
com a sua conta do twitter tem que acessar http://twitter.com/apps/new e registrar uma aplicação "qualquer"
o twitter te fornece uma Consumer key e Consumer secret
Assim na página _config.asp dentro do diretório twitter, é só substituir os parâmetros e atribuir esse valor a variável
Const OAUTH_EXAMPLE_CALLBACK_URL = "http://api.twitter.com/1/statuses/mentions.xml"
Mas ainda não consegui acessar porque o basic authentication ta vindo antes do oauth
ou seja, pra acessar essa página você tem que inserir login e senha, mas o twitter nao aceita mais autenticação por login e senha, assim sendo tem que arranjar um jeito do oauth vir antes do basic, ou então tem alguma coisa faltando...
quando acesso a página do callback ele passa como parâmetro uma oauth_token e oauth_verifier, andei um pouco mas ainda não cheguei lá
Velho, fiz o teste aqui e foi tudo belezinha, uma pergunta, você esta testando esse code em 127.0.0.1 ou localhost? estou perguntando isso pois não será aceito localhost você terá que testar em 127.0.0.1 localmente.
http://classicaspreference.com/aspexamples/classic_asp_for_twitter_desapio.asp
neste link explicam como acessar a api sem login usando a classe do desapio, mas tá dando erro de signature. Qualquer avanço postem aí. Abs.
Este utiliza o método antigo, por isso nem por reza braba dará certo.
A Classe que eu passei, funciona perfeitamente, basta seguir os passos corretamente listados na própria página, fiz os testes aqui e funcionou tudo perfeitamente.
Patrique, eu tentei e comigo não funcionou. Talvez se setar o parametro Const OAUTH_EXAMPLE_CALLBACK_URL da forma que Xiqoo falou. Outra coisa, com essa classe você consegue acessar o twiiter sem precisar fazer login? Preciso que funcione sem login pois quero que meu blog poste automaticamente no twitter toda mensagem nova.
Como eu disse, estou testando localhost, com isso na hora que apontei as urls no twitter app eu coloquei como 127.0.0.1 portanto minha const desta variavel ficou assim lá no config, portanto não se pode utilizar localhost, tem que mandar o ip direto nesse caso.
Const OAUTH_EXAMPLE_CALLBACK_URL = "http://127.0.0.1/conect/twitter/callback.asp"
Em relação a mandar sem login uma mensagem ao twitter é impossível, de qualquer forma tem que mandar o login na parada.
Para o seu caso eu indico esta class
http://forum.imasters.com.br/index.php?/topic/390947-twitter-biblioteca-2/
[]'s
>
Em relação a mandar sem login uma mensagem ao twitter é impossível...
Para o seu caso eu indico esta class
http://forum.imaster...r-biblioteca-2/
O que quiz dizer é não precisar fazer login preenchendo o formulario, mas acessar a conta com senha e user armazenados na pagina como no acessos que eram feitos sem oAuth. Assim o acesso e a atualização do status são feito de forma instantanea. Essa sua classe não usa oAuth, somente senha e username, correto?
Sim a classe que postei serve para seu exemplo pois não tem ligação com oAuth.
Bem, desisti da solução via ASP, mas não por causa do código, muito provavelmente por causa do servidor.
Adotei uma solução em PHP em um servidor meu pessoal, ele lê a página que responde em formato json, eu formato num arquivo XML do jeito que quero e uso uma página ASP aqui do trabalho para lê-lo e inserir no bd.
Utilizei a mesma solução em PHP no servidor daqui e não rolou, o que devia tá me "breckando" era configuração do servidor e principalmente do firewall que é restritíssima.
Obrigado a todos que ajudaram!
Uma coisa importante é que uma vez gerado o token após logado você pode usar esse token permanentemente, ele não expira
Beleza então cara, boa sorte com os projetos.
ola Patrique!
estou tentando fazer esse script funcionar em um site na empresa onde trabalho. Segui os passos (1º registrei o aplicativo no twitter, 2° peguei o consumerkey e ConsumerSecret e coloquei nas variaveis "CKey" e "CSecret", 3º baixei as pastas no site http://scottdesapio.com/VBScriptOAuth/) e joguei na pagina o seguinte codigo:
Dim objOAuth : Set objOAuth = New cLibOAuth
objOAuth.ConsumerKey = CKey
objOAuth.ConsumerSecret = CSecret
objOAuth.EndPoint = TWITTER_OAUTH_URL_UPDATE_STATUS
objOAuth.RequestMethod = OAUTH_REQUEST_METHOD_POST
objOAuth.Parameters.Add "status", strStatus
objOAuth.Send()
response.Write(objOAuth.ResponseText)
response.End()
No meu caso, desejo fazer uma aplicação que posta titulo da noticia cadastrada no twitter da empresa. Quando vou testar no ar apresenta o resultado "error":"Could not authenticate you." no objOAuth.ResponseText. anteriormante tive que modificar uma rotina no arquivo clibOauth.until.asp:
Private Sub Set_OffsetMinutes()
'Dim objWshShell : Set objWshShell = Server.CreateObject("WScript.Shell")
'm_intOffsetMinutes = objWshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
'Set objWshShell = Nothing
m_intOffsetMinutes = minute(now)
End Sub
parece que esse objeto ele não tem no host onde o site eh hospedado. se poder me da uma ajuda. vlw
Boa tarde Dariel
Passei pelo mesmo problema que você
Meu provedor também não tem este componente instalado. Para resolver fiz o seguinte:
No arquivo cLibOAuth.Utils.asp, substitui esta função:
Private Sub Set_OffsetMinutes()
Dim objWshShell : Set objWshShell = Server.CreateObject("WScript.Shell")
m_intOffsetMinutes = objWshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
Set objWshShell = Nothing
End Sub
Por isso:
Private Sub Set_OffsetMinutes()
m_intOffsetMinutes = 180
End Sub
No regedit este caminho HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias me retorna o valor binário B4 = 180
Esta key contém o horário atual, se for igual ao Bias (b4 00 00 00 = 180 minutos) é porque o Horário de Verão está desligado, se for igual à soma de Bias + DaylightBias (b4 00 00 00 + c4 ff ff ff = 78 00 00 00 = 120 minutos) é porque estamos no verão.
Mesmo assim, não tive sucesso, quando faço o login e vou tentar enviar um teste aparece um alert():
Oops! As error has occurred.
Please refresh the page and try again.
Se tiver algum progresso poste p/ gente.
Obrigado
Me parece que é problema no server, pois o xikoo teve o mesmo problema, no meu caso funcionou sem problemas.
Siga as instruções do rog.cesar e veja se irá funfar
[]'s
vlw rog.cesar! ajudou mt cara!
ainda to com o problema de fazer funcionar o Status Update funcionar, apesar de seguir todos os pasos do site e fazer a função como postei acima. Se poderem, postem ai um exemplo de vcs q funcionou, please!
Você verificou se os caminhos estão corretos? se tiver testando em localhost lembre-se que deve-se usar o ip.
to testando no ar msm com o nome do site msm
Registrou tudo certinho? verificou as pastas? esta autenticando corretamente?
Pra funcionar o que precisa ser registrado alem do Consumer Key e Consumer secret pra funcionar sem problemas?
Aqui funcionou alterando como o amigo falou:
No arquivo cLibOAuth.Utils.asp, substitui esta função:
Private Sub Set_OffsetMinutes()
Dim objWshShell : Set objWshShell = Server.CreateObject("WScript.Shell")
m_intOffsetMinutes = objWshShell.RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
Set objWshShell = Nothing
End Sub
Por isso:
Private Sub Set_OffsetMinutes()
m_intOffsetMinutes = 180
End Sub
Porém estou com problema na acentuação os acentos saem todos errados.
Alguém tem a luz como corrigir?
Olá amigo!
Obrigado pela sua contribuição. Mas tente ajudar em tópicos mais recentes, onde os autores dos mesmos ainda precisam de sua ajuda.
Toma ai
http://scottdesapio.com/VBScriptOAuth/
[]'s