gpt4 book ai didi

ruby - 如何使用 Ruby 通过 oauth 连接到 Yahoo?

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:41 25 4
gpt4 key购买 nike

我正在尝试通过 oauth 连接到 yahoo。我将 oauth gem 与 ruby​​ 一起使用。

我可以成功获得访问 token ,但我无法使用它进行任何调用。这是我的代码:

def oauth        
OAuth::Consumer.new(ApplicationConfig['yahoo']['access_token'],
ApplicationConfig['yahoo']['secret'],
{
:site => 'https://api.login.yahoo.com',
:scheme => :query_string,
:http_method => :get,
:request_token_path => '/oauth/v2/get_request_token',
:access_token_path => '/oauth/v2/get_token',
:authorize_path => '/oauth/v2/request_auth',
:oauth_callback => 'http://my_callback'
})
end

def oauth_api
OAuth::Consumer.new(ApplicationConfig['yahoo']['access_token'],
ApplicationConfig['yahoo']['secret'],
{
:site => 'http://address.yahooapis.com',
:scheme => :header,
:realm => 'yahooapis.com',
:http_method => :get,
:request_token_path => '/oauth/v2/get_request_token',
:access_token_path => '/oauth/v2/get_token',
:authorize_path => '/oauth/v2/request_auth'
})
end

@request_token = oauth.get_request_token( { :oauth_callback => 'my_callback' } )

# go to @request_token.authorize_url

@access_token = @request_token.get_access_token({ :oauth_verifier => params[:oauth_verifier] })

@access_token.consumer = oauth_api

## Now I have an access token, but if I do something like:

response = @access_token.get('/v1/searchContacts')

## Then I get

#<Net::HTTPForbidden 403 Forbidden readbody=true>
# >> response.body
# => "<!-- web231.address.pim.re3.yahoo.com uncompressed/chunked Wed Jan 13 01:15:46 PST 2010 -->\n"

基本上我希望它能起作用。

我一直无法找到任何关于如何使用 Ruby 连接到 yahoo 的工作示例。我希望其他人以前做过这件事并且他/她愿意提供帮助。

最佳答案

我正在做的事情即将完成

host = 'login.yahoo.com'#set the host server in this case its login.yahoo.com
port = 80 #self explainitray
path = "/config/login_verify2/ispverify_user?&login=#{username}&passwd=#{password}"
request = "GET #{path} HTTP/1.0\r\n\r\n" # send the HTTP GET request to the server
socket = TCPSocket.open(host,port) # make the connection to the server
socket.puts(request) # send the GET request to the server
data_arrival = socket.read

然后拆分 Y=v=T=z= cookie,然后您现在可以像这样打开一个新套接字来连接到聊天服务

login_packet = "1À€#{username}À€244À€0À€6À€Y=v=#{ycookie_start,ycookie_end[0]}; T=z=#{tcookie_start,tcookie_end[0]}À€"
chatlogin = "YMSG#{0.chr}#{17.chr}#{0.chr}#{0.chr}#{(login_packet.length / 256).chr}#{(login_packet.length % 256).chr}#{2.chr}#{38.chr}#{0.chr}#{0.chr}#{0.chr}#{0.chr}#{0.chr}#{0.chr}#{0.chr}#{0.chr}#{login_packet}"
socket2 = TCPSocket.open('scs.msg.yahoo.com', 5050)
socket2.puts(chatlogin)
data2 = socket2.read

这还不是完整的完整工作客户端,但可以获取 cookie,还可以使用那里的内容登录到那里的聊天服务,我不是一个完整的 ruby​​ 程序员,但已经注意到它非常容易使用,所以希望这对伙伴有所帮助。

p>

关于ruby - 如何使用 Ruby 通过 oauth 连接到 Yahoo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com