diff --git a/Changelog.md b/Changelog.md
index 07da17c..82e9f2d 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+### 4.1.1 ###
+1. Removed unsafe dependencies
+2. Fix bugs: #535, #524, #563, #562 and #557
+
### 4.1 ###
1. Support for Api Version [4.1](https://core.telegram.org/bots/api-changelog#august-27-2018)
2. Fix #507 and #512
diff --git a/FAQ.md b/FAQ.md
index eeac8dc..bacd32d 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -1,4 +1,5 @@
-* [How to get picture?](#how_to_get_picture)
+* [How to get picture?](#how_to_get_picture)
+* [How to display ChatActions like "typing" or "recording a voice message"?](#how_to_sendchataction)
* [How to send photos?](#how_to_send_photos)
* [How do I send photos by file_id?](#how_to_send_photos_file_id)
* [How to use custom keyboards?](#how_to_use_custom_keyboards)
@@ -74,6 +75,38 @@ public java.io.File downloadPhotoByFilePath(String filePath) {
The returned `java.io.File` object will be your photo
+## How to display ChatActions like "typing" or "recording a voice message"? ##
+Quick example here that is showing ChactActions for commands like "/type" or "/record_audio"
+
+```java
+if (update.hasMessage() && update.getMessage().hasText()) {
+
+ String text = update.getMessage().getText();
+
+ SendChatAction sendChatAction = new SendChatAction();
+ sendChatAction.setChatId(update.getMessage().getChatId());
+
+ if (text.equals("/type")) {
+ // -> "typing"
+ sendChatAction.setAction(ActionType.TYPING);
+ // -> "recording a voice message"
+ } else if (text.equals("/record_audio")) {
+ sendChatAction.setAction(ActionType.RECORDAUDIO);
+ } else {
+ // -> more actions in the Enum ActionType
+ // For information: https://core.telegram.org/bots/api#sendchataction
+ sendChatAction.setAction(ActionType.UPLOADDOCUMENT);
+ }
+
+ try {
+ Boolean wasSuccessfull = execute(sendChatAction);
+ } catch (TelegramApiException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+}
+```
+
## How to send photos? ##
There are several method to send a photo to an user using `sendPhoto` method: With a `file_id`, with an `url` or uploading the file. In this example, we assume that we already have the *chat_id* where we want to send the photo:
@@ -231,8 +264,6 @@ Your main spring boot class should look like this:
```java
@SpringBootApplication
-//Add this annotation to enable automatic bots initializing
-@EnableTelegramBots
public class YourApplicationMainClass {
public static void main(String[] args) {
@@ -246,10 +277,10 @@ public class YourApplicationMainClass {
After that your bot will look like:
```java
- //Standart Spring component annotation
+ //Standard Spring component annotation
@Component
public class YourBotClassName extends TelegramLongPollingBot {
//Bot body.
}
```
-Also you could just implement LongPollingBot or WebHookBot interfaces. All this bots will be registered in context and connected to Telegram api.
\ No newline at end of file
+Also you could just implement LongPollingBot or WebHookBot interfaces. All this bots will be registered in context and connected to Telegram api.
diff --git a/Getting-Started.md b/Getting-Started.md
index 2bea5d5..9b5e132 100644
--- a/Getting-Started.md
+++ b/Getting-Started.md
@@ -11,13 +11,13 @@ First you need ot get the library and add it to your project. There are few poss
org.telegram
telegrambots
- 4.1
+ 4.1.1
```
* With **Gradle**:
```groovy
- compile group: 'org.telegram', name: 'telegrambots', version: '4.1'
+ compile group: 'org.telegram', name: 'telegrambots', version: '4.1.1'
```
2. Don't like **Maven Central Repository**? It can also be taken from [Jitpack](https://jitpack.io/#rubenlagus/TelegramBots).
diff --git a/Handling-Bot-Tokens.md b/Handling-Bot-Tokens.md
new file mode 100644
index 0000000..305f9d5
--- /dev/null
+++ b/Handling-Bot-Tokens.md
@@ -0,0 +1,88 @@
+* [Bot Token Dont's](#bot-token-donts)
+* [Using Enviroment Variables](#using-environment-variables)
+ * [Setting Enviroment Variables](#setting-environment-variables)
+ * [Accessing Enviroment Variables](#accessing-enviroment-variables)
+* [Using Command Line Arguments](#using-command-line-arguments)
+
+# Bot Token Dont's ##
+* Tokens should not be hardcoded into the bot code
+* Tokens should never be published
+* Tokens should not be pushed into Repositorys
+
+# Using Environment Variables ###
+One convenient way to inject your bot token into the application is by using Environment Variables. Environment Variables are Values that are set in the Environment the Bot is running.
+
+Those Values are not defined in the Application and therefore are not visible in the code.
+
+## Setting Environment Variables ###
+
+### Windows
+Enviroment Variables in Windows can be set using the Console (CMD) using
+```batchfile
+SETX [VARIABLE_NAME] [YOUR_BOT_TOKEN]
+```
+
+It can also be set using the Windows GUI
+* From the desktop, right click the Computer icon.
+* Choose Properties from the context menu.
+* Click the Advanced system settings link.
+* Click Environment Variables...
+* In the 'User Variables for X' click New and enter a Name and your Token as the Value
+
+### Linux & Mac
+* Open the '~/.bash_profile' File
+* Append the following to it:
+```bash
+export VARIABLE_NAME = {YOUR_BOT_TOKEN}
+```
+* Save the file
+* Either reboot your system or run the command above in your terminal
+
+### IntelliJ
+* Go to Run->Edit Configuratuions...
+* Navigate to your Java Run Configuration
+* Under Enviroment->Enviroment Variables click the Folder Icon
+* Click the Plus Icon to add a new Variable
+* Enter a Name and your Token as the Value
+
+###Heroku Cloud
+* Naviage to your App
+* In the Settings Tab under Config Vars, click "Reveal Config Vars"
+* Enter a Name and your Token as the Value
+* Click the "Add" button
+
+## Accessing Enviroment Variables ##
+
+### Java
+You can access the Enviroment Variables by using System.getEnv()
+
+```java
+String BOT_TOKEN = System.getenv("VARIABLE_NAME");
+```
+
+### Spring
+
+In Spring the @Value annotation allows you to inject the Value into your class
+```java
+public class Bot extends TelegramLongPollingBot {
+ public Bot(@Value("${VARIABLE_NAME") String botToken) {
+ this.botToken = botToken;
+ }
+}
+```
+
+# Using Command Line Arguments
+An easier but not Recommended way of injecting the Bottoken is by utilizing Command Line Arguments when starting the Application
+
+In this case your main Method is responsible for taking in the Token
+
+```java
+public static void main(String[] args) {
+ String botToken = args[0];
+}
+```
+
+You now have to call your jar by using
+```
+java -jar myBot.jar [BOT_TOKEN]
+```
\ No newline at end of file
diff --git a/Home.md b/Home.md
index b22449b..882c90e 100644
--- a/Home.md
+++ b/Home.md
@@ -1,3 +1,3 @@
Welcome to the TelegramBots wiki. Use the sidebar on the right. If you're not sure what to look at, why not take a look at the [[Getting Started|Getting-Started]] guide?
-If you want more detailed explanations, you can also visit this [gitbook by MonsterDeveloper's](https://www.gitbook.com/book/monsterdeveloper/writing-telegram-bots-on-java/details)
\ No newline at end of file
+If you want more detailed explanations, you can also visit this [gitbook by MonsterDeveloper's](https://monsterdeveloper.gitbooks.io/writing-telegram-bots-on-java/content/)
diff --git a/_Sidebar.md b/_Sidebar.md
index 0bc64b5..f423f02 100644
--- a/_Sidebar.md
+++ b/_Sidebar.md
@@ -3,6 +3,7 @@
* [[Errors Handling]]
* [[Using HTTP Proxy]]
* [[FAQ]]
+ * [[Handling Bot Tokens]]
* AbilityBot
* [[Simple Example]]
* [[Hello Ability]]
@@ -11,5 +12,6 @@
* [[Bot Testing]]
* [[Bot Recovery]]
* [[Advanced]]
+ * [[Additional Examples]]
* [[Changelog]]
* [[How To Update]]
\ No newline at end of file
diff --git a/abilities/Additional-Examples.md b/abilities/Additional-Examples.md
new file mode 100644
index 0000000..786bfbf
--- /dev/null
+++ b/abilities/Additional-Examples.md
@@ -0,0 +1,5 @@
+# Additional Examples
+The following are nifty links to projects and examples that leverage the AbilityBot module. If you do have a project that you would like to share, please reach out!
+
+[FitnessBot](https://craftcodecrew.com/getting-started-with-the-telegram-abilitybot/) -
+A fully fledged guide that walks you through building a fitness bot from A to Z
\ No newline at end of file
diff --git a/abilities/Simple-Example.md b/abilities/Simple-Example.md
index a05dddc..800d1b7 100644
--- a/abilities/Simple-Example.md
+++ b/abilities/Simple-Example.md
@@ -9,12 +9,12 @@ As with any Java project, you will need to set your dependencies.
org.telegram
telegrambots-abilities
- 4.1
+ 4.1.1
```
* **Gradle**
```groovy
- compile group: 'org.telegram', name: 'telegrambots-abilties', version: '4.1'
+ compile group: 'org.telegram', name: 'telegrambots-abilties', version: '4.1.1'
```
* [JitPack](https://jitpack.io/#rubenlagus/TelegramBots)