Hauke Zühl
8 years ago
1 changed files with 100 additions and 0 deletions
@ -0,0 +1,100 @@
|
||||
/**
|
||||
* |
||||
* This is a simple Telegram client that can echo a message, piped to its |
||||
* binary and to set your web hook. |
||||
* |
||||
* If you want to use this example to send your web hook to Telegram's |
||||
* API, change BOT_TOKEN according to your needs and your web server! |
||||
* |
||||
* Example: |
||||
* BOT_TOKEN: Your token given by Telegram's Bot Father! |
||||
* |
||||
* To compile do: |
||||
* g++ -c -o example02.o -I/usr/include/jsoncpp example02.cc |
||||
* g++ -o example02 example02.o -ltgbotpp |
||||
* |
||||
* Run: |
||||
* echo "Your message" | ./example02 -u <your user id> |
||||
* |
||||
* To set your web hook to Telegram's network: |
||||
* ./example02 -w |
||||
* |
||||
* To send a photo to a user or group: |
||||
* ./example02 -p file:///path/to/pic.jpg -u <user id>
|
||||
*/ |
||||
|
||||
#include <Telegram/TelegramBot.h> |
||||
|
||||
#include <sstream> |
||||
#include <string> |
||||
|
||||
#include <termios.h> |
||||
#include <unistd.h> |
||||
|
||||
#define WEBHOOK_URL "https://your-domain/cgi-bin/bot.cgi"
|
||||
#define BOT_TOKEN "your secret token" |
||||
|
||||
// main function
|
||||
int main(int argc, char** argv) { |
||||
|
||||
// Process options
|
||||
std::string user_id = ""; // ID of the receiving user
|
||||
std::string filename = ""; // File name of file to be sent
|
||||
|
||||
Telegram::TelegramBot tg(BOT_TOKEN); |
||||
|
||||
#ifdef __arm__ |
||||
int c; |
||||
#else |
||||
char c; |
||||
#endif |
||||
|
||||
while ((c = getopt(argc, argv, "wu:p:")) != -1) { |
||||
switch(c) { |
||||
case 'u': |
||||
user_id = (std::string)optarg; |
||||
break; |
||||
case 'w': |
||||
tg.setWebhook(WEBHOOK_URL); |
||||
return 0; |
||||
break; // Never reached
|
||||
case 'p': |
||||
filename = (std::string)optarg; |
||||
break; |
||||
case ':': |
||||
std::cerr << optopt << " without argument" << std::endl; |
||||
break; |
||||
} |
||||
} |
||||
|
||||
if (user_id == "") { |
||||
std::cerr << "No user ID given!" << std::endl; |
||||
return 1; |
||||
} |
||||
|
||||
if (filename != "") { |
||||
// Currently only photos are supported
|
||||
tg.sendPhoto(filename, user_id); |
||||
return 0; |
||||
} |
||||
|
||||
// Read from stdin
|
||||
struct termios t; |
||||
std::string s = ""; |
||||
|
||||
if (tcgetattr(STDIN_FILENO, &t) < 0) { |
||||
// If we have a text piped in, read from std::cin
|
||||
while(std::cin) { |
||||
std::string line; |
||||
std::getline(std::cin, line); |
||||
s = s + line + "\n"; |
||||
} |
||||
s.erase(s.end()-1); |
||||
} |
||||
|
||||
if (s != "") { |
||||
tg.sendMessage(s, user_id); // Send the message to the user
|
||||
} |
||||
|
||||
return 0; |
||||
} |
Loading…
Reference in new issue