Giter VIP home page Giter VIP logo

fabriziobrancati / swiftybot Goto Github PK

View Code? Open in Web Editor NEW
266.0 10.0 42.0 993 KB

How to create a Telegram, Facebook Messenger, and Google Assistant bot with Swift using Vapor on Linux and macOS.

Home Page: https://www.fabriziobrancati.com/SwiftyBot-2

License: MIT License

Swift 96.49% Shell 0.36% Lua 0.09% Ruby 3.05%
telegram-bot vapor swift macos linux ubuntu bot swiftybot messenger-bot messenger telegram xcode google google-assistant-bot vapor-toolbox bot-platform facebook facebook-messenger-bot

swiftybot's Introduction

SwiftyBot Banner

Build Status Coverage Status Maintainability Codebeat Badge Codacy Badge
Version Language Platforms License


FeaturesPlatforms and TutorialsLanguage SupportRequirementsCommunicationContributingDeployingPlatforms UsageDocumentationChangelogDemosAuthorsLicense


Features

SwiftyBot is an example of how to create a bot with Swift on top of Vapor.

Here is the list of all the features:

  • Telegram bot integration
  • Facebook Messenger bot integration
  • Google Assistant bot integration
  • Well documented (you can find more in Documentation section)
  • Well tested (currently 99% of code coverage)
  • Clean (every bot platform has its folder with its files and tests)
  • Easy to follow (every bot platform comes with a tutorial, more in Platforms and Tutorials section)
  • Multi language support

There are a lot of bot platforms out there that can be added...

Platforms and Tutorials

Bot Platform Blog Post Link
Telegram How to create a Telegram bot with Swift using Vapor on Ubuntu / macOS
Facebook Messenger How to create a Facebook Messenger bot with Swift
Google Assistant Not Available Yet

Language Support

  • English (en)

Requirements

  • Ubuntu 14.04 or later with Swift 5.1 or later / macOS with Xcode 11.2 or later
  • Telegram account and a Telegram app for any platform (Telegram bot only)
  • Facebook account and a Facebook Messenger app for any platform (Facebook Messenger bot only)
  • Google account and a Google Assistant app for any platform (Google Assistant bot only)

Communication

  • If you need help, open an issue.
  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, see Contributing section.

Contributing

See CONTRIBUTING.md file.

Deploying

Private Server

  1. Install Swift on your computer / server
  2. Install Vapor Toolbox (Optional)
  3. Enable TLS (You can use Let's Encrypt)
  4. Use Apache or nginx as reverse proxy
  5. Use Supervisor to ensure your bot is always up and running

If you need more help through this steps, you can read How to create a Facebook Messenger bot with Swift blog post, from Step 1 to Step 4.

Heroku

Deploy

  1. Click the button above
  2. Go to the Settings section of your application
  3. Click on the Reveal Config Vars button in Config Vars section
  4. Copy all the created secret key set to up the bots, read the next sections for more info

Vapor Cloud

  1. Create an account on Vapor Cloud
  2. Create an organization
  3. Create a project
  4. Create an application
  5. Add an hosting service and connect it to your GitHub repository
  6. Add at least 1 environment, 2 is better
  7. Use the Vapor Toolbox to deploy your bot

Platforms Usage

Telegram

  1. Set a secret key in TELEGRAM_SECRET environment variable
  2. Create a Telegram bot with BotFather

If you need more help through this steps, you can read How to create a Telegram bot with Swift using Vapor on Ubuntu / macOS blog post.

Facebook Messenger

  1. Set a secret key in MESSENGER_SECRET environment variable
  2. Create a Facebook app and Page
  3. Get a Page access token and set it in MESSENGER_TOKEN environment variable

If you need more help through this steps, you can read How to create a Facebook Messenger bot with Swift blog post.

Google Assistant

  1. Set a secret key in ASSISTANT_SECRET environment variable
  2. Create an Actions on Google project
  3. Setup Actions on Google project on Dialogflow

Documentation

Bot

  • Every line of every project file is commented.
  • If you need Vapor documentation you can find it here.

Platforms

  • If you need Telegram bot documentation you can find it here.
  • If you need Facebook Messenger bot documentation you can find it here.
  • If you need Google Assistant bot documentation you can find it here and here. You can also find some JSON examples here and here.

Changelog

To see what has changed in recent version of SwiftyBot, see the CHANGELOG.md file.

Demos

Telegram

You can open Telegram and search for SwiftyBot to start talking with him!

Facebook Messenger

You can open Facebook Messenger and search for SwiftyBotMessenger to start talking with him!

Google Assistant

You can open Google Assistant and write Talk to SwiftyBot to start talking with him!

Authors

Bot

Fabrizio Brancati

https://www.fabriziobrancati.com - [email protected]

Icon

Roberto Chiaveri

http://robertochiaveri.it

License

SwiftyBot is available under the MIT license. See the LICENSE file for more info.

swiftybot's People

Contributors

fabriziobrancati avatar n0an avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swiftybot's Issues

Cannot deploy to Heruko

I cannot deploy to Heroku, I have tried various build packs and also docker and docker-compose but I was never able to get a single response :D/ Seasoned swift developer but I really do not understand how to get this library to work.

There are other alternatives but due to the structure and code quality I would love to stay with SwiftyBot. any hints ?

Can not run this

When I run this using XCode, or vapor run command, I got this:
The default hash should be replaced before using in production.
The default cipher should be replaced before using in production.
Missing secret or token keys!

I created app.json file with secret and token provided

run on digital ocean withou plesk control panel

Did you try to run this bot on server without Plesk control panel? For example on digital ocean Ubuntu droplet? I can't figure out how to configure let's encrypt on VPS without Plesk, and how to configure reverse proxy without plesk.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.