docbrown/docs/backend/auth-twitter.md
Jacob Herrington 7d0aeeefe5 Improve the clarity of the docs and fix Prettier config (#4899)
* Improve format and clarity of the docs [ci skip]

While this change produces a lot of git noise by enacting what seems
like an arbitrary linewrap on most of the files in the documentation it
will result in better version control and tracking of the changes in the
documentation.

For example, as it currently stands, if one was to make a
PR to move a comma in a sentence because each paragraph in most of the
files is on a single line, that small change would look in the git
history like the author had modified the entire paragraph. In reality,
this author just moved a comma.

This change also includes a significant number of modifications to the
more article-esque docs. Many of these docs were written in a sort of
stream-of-conciousness and aren't as easy to read as they could be.
Hopefully this is the first of several readability changes. If we could
get these docs to a more accessible reading level, we would probably see
an increase in contributions. :)

* Delegate markdown wrapping to Prettier

* Add linewrapping explanation in the docs [ci skip]
2019-11-26 08:40:53 -05:00

96 lines
3.8 KiB
Markdown

---
title: Twitter Authentication
---
# Twitter App and Authentication
DEV allows you to authenticate using Twitter. In order to use this
authentication method in local development, you will need to setup a Twitter App
and retrieve its keys. Then you'll need to provide these keys to the Rails
application.
## Sign up
1. [Sign in](https://developer.twitter.com/apps) to your Twitter account.
2. In order to get the API keys, you will have to
[apply for a developer account](https://developer.twitter.com/en/apply-for-access). Click the **Apply** button.
![twitter-up-1](https://user-images.githubusercontent.com/22895284/51078779-53139b00-16bb-11e9-911c-f232e229872a.png)
3. Setup your Twitter account. Be sure you have your phone number and email
address filled in.
![twitter-up-2](https://user-images.githubusercontent.com/22895284/51078780-53139b00-16bb-11e9-91d5-08c9365ff08f.png)
4. Fill in your account information and give a name to your **developer
account**.
![twitter-up-3](https://user-images.githubusercontent.com/22895284/51078781-53ac3180-16bb-11e9-8cf4-005efbb92d8a.png)
5. Write down the reasons that you want to use Twitter API. Mention DEV's
community and describe the issues and tests and things that you want to work
on. Copy it, you might use it later ;)
![twitter-up-4](https://user-images.githubusercontent.com/22895284/51078782-53ac3180-16bb-11e9-9937-c888ae40143c.png)
6. Read :) and accept the Terms and Conditions.
![twitter-up-5](https://user-images.githubusercontent.com/22895284/51078783-53ac3180-16bb-11e9-9cf1-8e009ada6e57.png)
7. Verify your email address once more, and you will be done.
8. You are done.
## Get API keys
1. [Sign up](#twitter-sign-up) or [sign in](https://developer.twitter.com/apps)
to your Twitter developer account.
2. From **Apps** dashboard, click on **Create and app**.
![twitter-1](https://user-images.githubusercontent.com/22895284/51078797-9a019080-16bb-11e9-8130-1cd13008461e.png)
3. Fill in the app name, description, and URL `https://dev.to`.
![twitter-2](https://user-images.githubusercontent.com/22895284/51078798-9a019080-16bb-11e9-900d-d2677d7c43c4.png)
4. Check the **Enable Sign in with Twitter** option and fill in the Callback URL
`http://localhost:3000/users/auth/twitter/callback` (or whatever port you run
DEV on).
![twitter-3](https://user-images.githubusercontent.com/22895284/51078799-9a9a2700-16bb-11e9-8e88-0393260449c7.png)
5. Fill in the DEV information, **Terms of Service** `http://dev.to/terms` and
**Privacy policy** `http://dev.to/privacy`.
![twitter-4](https://user-images.githubusercontent.com/22895284/51078800-9a9a2700-16bb-11e9-9b36-d325a2624f5a.png)
6. Write down (or paste) the things that you will work on. Press **Create**.
![twitter-5](https://user-images.githubusercontent.com/22895284/51078801-9a9a2700-16bb-11e9-9bd9-76c9ca1ba526.png)
7. Review the [Twitter Developer
Terms](https://developer.twitter.com/en/developer-terms/agreement-and-policy.html)
and agree to do nothing sketchy.
![twitter-6](https://user-images.githubusercontent.com/22895284/51078802-9a9a2700-16bb-11e9-8789-53720bcfc9d9.png)
8. The app is all set!
9. One more change: From the app dashboard, go to **Permissions** and check
**Request email addresses from users** option.
![twitter-7](https://user-images.githubusercontent.com/22895284/51078803-9a9a2700-16bb-11e9-8f27-dbfe04b52031.png)
10. From the same dashboard access the **Keys and tokens** and change them
accordingly (name of Twitter key -> name of our `ENV` variable):
```text
API key -> TWITTER_KEY
API secret key -> TWITTER_SECRET
Access Token -> TWITTER_ACCESS_TOKEN
Access Token Secret -> TWITTER_ACCESS_TOKEN_SECRET
```
![twitter-8](https://user-images.githubusercontent.com/22895284/51078804-9a9a2700-16bb-11e9-8b9e-0c882ae47f21.png)