Yahoo Fantasy Bot

by krasher134

GitHub Readme.md

Deploy

Feel free to contribute!

Current Roadmap

  • Kotlin (because why not :?)
  • Reactive X
  • Break out Yahoo data retrieval into independent library
  • Docker Support (hopefully by mid-season)
  • More in depth messages
  • Respond to chat commands from various messaging services
  • Clean up code

Auto-deploys do not happen automatically. You will need to come back and click the "Deploy" button again to get the latest bot. It will reset everything. Just follow all the steps again and you will be good!

Yahoo Fantasy Bot

Bot that alerts GroupMe, Slack, and Discord users about various things happening in their Yahoo Fantasy Football League.

What it does:

Sends out messages at certain intervals: (All times are in GMT since it is not affected by DST. Will be sent at the correct times across timezones.)

Score Updates

  • Friday: 03:55 GMT
  • Sunday: 17:00 GMT
  • Sunday: 20:00 GMT
  • Monday: 00:00 GMT
  • Monday: 03:55 GMT
  • Tuesday: 03:55 GMT

Close Score Update (matches within 15pts): Monday 23:30 GMT

Weekly Matchups: Thursday 23:30 GMT

Weekly Standings: Tuesday 16:30 GMT

Alerts about any transactions that happen in the league:

  • ADD
  • DROP
  • ADD/DROP
  • TRADE
  • COMMISH CHANGES

Follow these steps EXACTLY!

  1. Click the above button. It will auto-deploy the application to Heroku.

  2. Name the application whatever you would like.

  3. When it asks for environment variables at first, you do not need to put any in that are not already filled in. These will be added later.

  4. Click "Deploy App". This will automatically configure the dynos and run all required scripts to get the app created.

  5. Follow the below section.


(REQUIRED) Setting up Yahoo API

You will need a Yahoo Access Token, Client ID, and Client Secret for this bot to work.

  1. Go to https://developer.yahoo.com/apps/
  2. Click "Create an App" button

  1. Fill out required information.
  • Name the application whatever you would like
  • Click "Installed Application"
  • The Redirect URI will be https://<the name of your application>.herokuapp.com/auth
  • Click "Fantasy Sports" and then "Read"
  • Click "Create App"

  1. You will see your: Yahoo Client ID and Client Secret. Save these for later.

  1. To get your league ID: (2 Ways)

On the website

  • Go to Yahoo Fantasy Football and click your league
  • Go to settings page
  • At the top, you will see "League ID", save for later

In the app

  • Open the app
  • Click "League" tab
  • Click "Settings" at the top
  • At the top, you will see "League ID#", save for later

  1. The following sections are all optional, but at least one of them is needed. All of them can be used as well!

(The following sections were taken from dtcarls/ff_bot as the steps are the exact same. They are tweaked a little bit.)


(Optional) GroupMe Setup

Click to expand

Go to www.groupme.com and sign up or login

If you don't have one for your league already, create a new "Group Chat"

Next we will setup the bot for GroupMe

Go to https://dev.groupme.com/session/new and login

Click "Create Bot"

Create your bot. GroupMe does a good job explaining what each thing is.

After you have created your bot you will see something similar to this. Click "Edit"

This page is important as you will need the "Bot ID" on this page.You can also send a test message with the text box to be sure it is connected to your chat room. Side note: If you use the bot id depicted in the page you will spam an empty chat room so not worth the effort

---

(Optional) Slack setup

Click to expand

Go to https://slack.com/signin and sign in to the workspace the bot will be in

If you don't have one for your league already, create a new League Channel

Next we will setup the bot for Slack

Go to https://api.slack.com/apps/new

Name the app, and choose the intended workspace from the dropdown.

Select the Incoming Webhooks section on the side.

Change the toggle from Off to On.

Select Add New Webhook to Workspace

In the Post to dropdown, select the channel you want to send messages to, then select Authorize.

This page is important as you will need the "Webhook URL" on this page.

---

(Optional) Discord setup

Click to expand

Log into or create a discord account

Go to or create a discord server to receive messages in

Open the server settings

Go to Webhooks

Create a webhook, give it a name and pick which channel to receive messages in

Save the "Webhook URL" on this page

---
  1. Follow the below section.

Heroku Setup

  1. Go to your dashboard. Now you will need to setup your environment variables so that it works for your league. Click Settings at your dashboard. Then click "Reveal Config Vars" button and you will see something like this.

  1. Fill out all of the variables from: Yahoo, GroupMe, Slack, and Discord (You can have any combination of messaging services.)
  2. Click 'Overview"
  3. Click "Configure Dynos" and turn on the "web" and "bot" dyno
  4. Click "Open App" at the top right
  5. Follow the setup and then close the window once it says "You are authorized".
  6. Once you are authorized, Click "Configure Dynos" and turn OFF the "web" dyno (failing to do this will put your bot to sleep because of heroku policy, thus your bot will not function.)

You are all set! Enjoy the bot!

  • Kotlin (because why not :?)
  • Reactive X
  • Break out Yahoo data retrieval into independent library
  • Docker Support
  • More in depth messages
  • Clean up code

Auto-deploys do not happen automatically. You will need to come back and click the "Deploy" button again to get the latest bot. It will reset everything. Just follow all the steps again and you will be good!

Yahoo Fantasy Bot

Bot that alerts GroupMe, Slack, and Discord users about various things happening in their Yahoo Fantasy Football League.

Deploy

Follow these steps EXACTLY!

  1. Click the above button. It will auto-deploy the application to Heroku.

  2. Name the application whatever you would like.

  3. When it asks for environment variables at first, you do not need to put any in that are not already filled in. These will be added later.

  4. Click "Deploy App". This will automatically configure the dynos and run all required scripts to get the app created.

  5. Follow the below section.


(REQUIRED) Setting up Yahoo API

You will need a Yahoo Access Token, Client ID, and Client Secret for this bot to work.

  1. Go to https://developer.yahoo.com/apps/
  2. Click "Create an App" button

  1. Fill out required information.
  • Name the application whatever you would like
  • Click "Installed Application"
  • The Redirect URI will be https://<the name of your application>.herokuapp.com/auth
  • Click "Fantasy Sports" and then "Read"
  • Click "Create App"

  1. You will see your: Yahoo Client ID and Client Secret. Save these for later.

  1. To get your league ID: (2 Ways)

On the website

  • Go to Yahoo Fantasy Football and click your league
  • Go to settings page
  • At the top, you will see "League ID", save for later

In the app

  • Open the app
  • Click "League" tab
  • Click "Settings" at the top
  • At the top, you will see "League ID#", save for later

  1. The following sections are all optional, but at least one of them is needed. All of them can be used as well!

(The following sections were taken from dtcarls/ff_bot as the steps are the exact same. They are tweaked a little bit.)


(Optional) GroupMe Setup

Go to www.groupme.com and sign up or login

If you don't have one for your league already, create a new "Group Chat"

Next we will setup the bot for GroupMe

Go to https://dev.groupme.com/session/new and login

Click "Create Bot"

Create your bot. GroupMe does a good job explaining what each thing is.

After you have created your bot you will see something similar to this. Click "Edit"

This page is important as you will need the "Bot ID" on this page.You can also send a test message with the text box to be sure it is connected to your chat room. Side note: If you use the bot id depicted in the page you will spam an empty chat room so not worth the effort


(Optional) Slack setup

Go to https://slack.com/signin and sign in to the workspace the bot will be in

If you don't have one for your league already, create a new League Channel

Next we will setup the bot for Slack

Go to https://api.slack.com/apps/new

Name the app, and choose the intended workspace from the dropdown.

Select the Incoming Webhooks section on the side.

Change the toggle from Off to On.

Select Add New Webhook to Workspace

In the Post to dropdown, select the channel you want to send messages to, then select Authorize.

This page is important as you will need the "Webhook URL" on this page.


(Optional) Discord setup

Log into or create a discord account

Go to or create a discord server to receive messages in

Open the server settings

Go to Webhooks

Create a webhook, give it a name and pick which channel to receive messages in

Save the "Webhook URL" on this page


  1. Follow the below section.

Heroku Setup

  1. Go to your dashboard. Now you will need to setup your environment variables so that it works for your league. Click Settings at your dashboard. Then click "Reveal Config Vars" button and you will see something like this.

  1. Fill out all of the variables from: Yahoo, GroupMe, Slack, and Discord (You can have any combination of messaging services.)
  2. Click 'Overview"
  3. Click "Configure Dynos" and turn on the "web" and "bot" dyno
  4. Click "Open App" at the top right
  5. Follow the setup and then close the window once it says "You are authorized".
  6. Once you are authorized, Click "Configure Dynos" and turn OFF the "web" dyno (failing to do this will put your bot to sleep because of heroku policy, thus your bot will not function.)

You are all set! Enjoy the bot!