DEV Community

ItsASine (Kayla)
ItsASine (Kayla)

Posted on

1

Guild Wars 2 SMS Bot [Entry]

What I built

Using Twilio’s Autopilot API, I made an SMS bot that integrates with the Guild Wars 2 API. Right now, the app leverages the GW2 API for checking the conversion rates for in-game currency conversion. Now that a proof of concept is up, though, it can be extended to do whatever the Guild Wars 2 API can do. I opted to have one reliable feature to demonstrate rather than have it do a bunch of things half well.

Demo Link

As it’s an SMS Bot, you can get to it by texting (724) 257-4486. The Flask app is hosted on free Heroku, so it may take a while to “wake up” at first, so here are some images:

Greetings
Gold to Gems
Gems to Gold

Link to Code

GitHub logo ItsASine / GW2-SMS-Bot

Twilio Hackathon project for an SMS chatbot that does Guild Wars 2 currency exchange math

GW2-SMS-Bot

How It Works

This chatbot uses Python and Flask to connect the Twilio API with the Guild Wars 2 API. It's hosted on Heroku, and you can talk to it via SMS texting.

Features

  • In Twilio
    • Greets the user and listens for additional commands
    • If the user requests help, lists the currently implemented commands
    • If the user says goodbye, sends the user a farewell message
    • Listens for if the user wants to supply an api key
  • In Python
    • Asks for an amount and type of currency and returns the amount in another currency (gold to gems, gems to gold)
    • Accepts the API key and stores it for usage elsewhere (currently there's no integration with the Account api, so it is unused)

How To Use It

  • Text (724) 257-4486 😄

Demo

Greeting

Converting gold Converting gems

How To Make It

Requirements

  • Python3
    • Package requirements can be installed with python -m pip install -r requirements.txt
  • A…






https://github.com/ItsASine/GW2-SMS-Bot

How I built it

Technologies involved are:

  • Twilio Autopilot API for handling the chatting over SMS
  • Flask (Python) for the middle code between Twilio and Guild Wars 2
  • Heroku to host the Flask code
  • The Guild Wars 2 API to get in-game info

Out of that, the only thing I’ve worked with before was the Guild Wars 2 API, mainly to get stuff like guild messages to display. It was new doing anything interactive, using Heroku over Netlify, and working with Python outside of schoolwork.

Cool stuff:

  • Twilio’s documentation is fantastic. The quickstarts were straightforward to go off of, and the blog had a bunch of examples to get ideas and approaches.
  • Flask made spinning up a proof of concept efficient. The guts of the app didn’t take long at all to get into the right place.

Annoying stuff:

  • I don’t know if Twilio’s documentation had me spoiled, or I was too used to no-fuss apps, but trying to get an API hosted on Heroku was a pain. Their documentation was very detailed in some spots and then “Do the thing” in other spots. I feel like I spent this month mostly fighting the deployment rather than developing.
  • I have no clue how the GW2 API works, haha. I noticed that when doing the currency conversions between in-game gold and premium gems, my app has one rate, another app that I know hits that API has another rate, and the game itself has an even more different rate. Hopefully, this is just caching (and I would assume GW2 is as close to realtime as it gets, while a large site like GW2 Efficiency might do their own caching)

Additional Resources/Info

If you play Guild Wars 2 and want to request a feature, here are the APIs available:

https://wiki.guildwars2.com/wiki/API:Main#Version_2_endpoints
https://wiki.guildwars2.com/wiki/API:2#Active_endpoints

Here are screenshots of the configuration in Twilio if you want to see behind the curtain a bit!

Bot tasks

Custom field type

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Instrument, monitor, fix: a hands-on debugging session

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️