The OAuth module provides an OAuth::Consumer as specified by RFC 5849.
Assuming you have an access token, its secret, the consumer key and the consumer secret, you can setup an HTTP::Client to be authenticated with OAuth using this code:
require "http/client"
require "oauth"
token = "some_token"
secret = "some_secret"
consumer_key = "some_consumer_key"
consumer_secret = "some_consumer_secret"
# Create an HTTP::Client as usual
client = HTTP::Client.new("api.example.com", tls: true)
# Prepare it for using OAuth authentication
OAuth.authenticate(client, token, secret, consumer_key, consumer_secret)
# Execute requests as usual: they will be authenticated
client.get("/some_path") This is implemented with HTTP::Client#before_request to add an authorization header to every request.
Alternatively, you can create an OAuth::Consumer and then invoke its OAuth::Consumer#authenticate method, or create an OAuth::AccessToken and invoke its OAuth::AccessToken#authenticate.
See OAuth::Consumer for an example.
Sets up an HTTP::Client to add an OAuth authorization header to every request performed.
Sets up an HTTP::Client to add an OAuth authorization header to every request performed. Check this module's docs for an example usage.
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/OAuth.html