Sid*_*Sid 9 authorization oauth linkedin
@@timestamp = nil
def generate_oauth_url
@@timestamp = timestamp
url = CONNECT_URL + REQUEST_TOKEN_PATH + "&oauth_callback=#{OAUTH_CALLBACK}&oauth_consumer_key=#{OAUTH_CONSUMER_KEY}&oauth_nonce=#{NONCE} &oauth_signature_method=#{OAUTH_SIGNATURE_METHOD}&oauth_timestamp=#{@@timestamp}&oauth_version=#{OAUTH_VERSION}"
puts url
url
end
def sign(url)
Base64.encode64(HMAC::SHA1.digest((NONCE + url), OAUTH_CONSUMER_SECRET)).strip
end
def get_request_token
url = generate_oauth_url
signed_url = sign(url)
request = Net::HTTP.new((CONNECT_URL + REQUEST_TOKEN_PATH),80)
puts request.inspect
headers = { "Authorization" => "Authorization: OAuth oauth_nonce = #{NONCE}, oauth_callback = #{OAUTH_CALLBACK}, oauth_signature_meth od = #{OAUTH_SIGNATURE_METHOD}, oauth_timestamp=#{@@timestamp}, oauth_consumer_key = #{OAUTH_CONSUMER_KEY}, oauth_signature = #{signed_url}, oauth_versio n = #{OAUTH_VERSION}" }
request.post(url, nil,headers)
end
def timestamp
Time.now.to_i
end
Run Code Online (Sandbox Code Playgroud)
我试图做oauth的工作,试图了解如何使用Authorization标头.我也收到以下错误.我正在尝试连接到linkedin API.
/usr/lib/ruby/1.8/net/http.rb:560:in 'initialize': getaddrinfo: Name or service not known (SocketError)
如果有人能够朝着正确的方向推动我,我将非常感激.
And*_*lam 18
"名称或服务未知"是套接字级别错误,通常指向无效的IP地址/ DNS主机名或未注册的端口名称(例如telnet the.host.name service,其中service不是注册的服务名称.)
检查是否CONNECT_URL包含有效的URL.
编辑: 我不是Ruby程序员,但我不介意下注Net::HTTP.new需要主机名(例如www.facebook.com)作为第一个参数,而不是完整的URL(例如www.facebook.com/login.php?方法= OAuth的).
当您没有互联网连接时,您也会收到此错误,因为DNS查找通常是使用主机名建立TCP连接时发生的第一件事.
拔下网线,然后尝试:
Socket.getaddrinfo("www.example.com", "http")
# => SocketError: getaddrinfo: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32593 次 |
| 最近记录: |