2015-11-18 04:34:26 +01:00
# Überauth Twitter
> Twitter strategy for Überauth.
2015-11-18 04:34:55 +01:00
_Note_: Sessions are required for this strategy.
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
## Installation
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
1. Setup your application at [Twitter Developers ](https://dev.twitter.com/ ).
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
1. Add `:ueberauth_twitter` to your list of dependencies in `mix.exs` :
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
```elixir
def deps do
2015-11-29 04:30:05 +01:00
[{:ueberauth_twitter, "~> 0.2"},
2015-11-18 04:34:55 +01:00
{:oauth, github: "tim/erlang-oauth"}]
end
```
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
1. Add the strategy to your applications:
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
```elixir
def application do
[applications: [:ueberauth_twitter]]
end
```
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
1. Add Twitter to your Überauth configuration:
2015-11-18 04:34:26 +01:00
2015-11-18 04:34:55 +01:00
```elixir
config :ueberauth, Ueberauth,
providers: [
2015-12-19 15:11:17 +01:00
twitter: {Ueberauth.Strategy.Twitter, []}
2015-11-18 04:34:55 +01:00
]
```
1. Update your provider configuration:
2015-11-18 04:34:26 +01:00
```elixir
2015-11-18 04:34:55 +01:00
config :ueberauth, Ueberauth.Strategy.Twitter.OAuth,
consumer_key: System.get_env("TWITTER_CONSUMER_KEY"),
consumer_secret: System.get_env("TWITTER_CONSUMER_SECRET")
```
1. Include the Überauth plug in your controller:
```elixir
defmodule MyApp.AuthController do
use MyApp.Web, :controller
plug Ueberauth
...
end
```
1. Create the request and callback routes if you haven't already:
```elixir
scope "/auth", MyApp do
pipe_through :browser
get "/:provider", AuthController, :request
get "/:provider/callback", AuthController, :callback
2015-11-18 04:34:26 +01:00
end
```
2015-11-18 04:34:55 +01:00
2018-02-13 19:29:42 +01:00
1. Your controller needs to implement callbacks to deal with `Ueberauth.Auth` and `Ueberauth.Failure` responses.
2015-11-18 04:34:55 +01:00
For an example implementation see the [Überauth Example ](https://github.com/ueberauth/ueberauth_example ) application.
## Calling
2017-04-04 18:56:36 +02:00
Depending on the configured url you can initiate the request through:
2015-11-18 04:34:55 +01:00
/auth/twitter
2018-06-06 04:00:43 +02:00
## Development mode
As noted when registering your application on the Twitter Developer site, you need to explicitly specify the `oauth_callback` url. While in development, this is an example url you need to enter.
Website - http://127.0.0.1
Callback URL - http://127.0.0.1:4000/auth/twitter/callback
2015-11-18 04:34:55 +01:00
## License
Please see [LICENSE ](https://github.com/ueberauth/ueberauth_twitter/blob/master/LICENSE ) for licensing details.