如何使用Telegram bot聊天API获取用户图片/头像?

问题描述 投票:12回答:1

user object没有photo_id,那么有没有办法获得用户的头像?

telegram telegram-bot avatar php-telegram-bot
1个回答
2
投票

我没有找到任何php代码,但这个nodejs片段为我工作所以我把它给你的想法,它是如何工作的。

  1. 创建一个机器人(在你的电报中开始与@botfather聊天)
  2. 在完成机器人的创建后,它将为您提供HTTP API的令牌
  3. $ npm install --save node-telegram-bot-api
  4. js文件夹旁边创建一个node_modules文件(例如:server.js
  5. 将此代码放在server.js文件中,然后使用$ node server.js运行它 const TelegramBot = require('node-telegram-bot-api'); // replace the value below with the Telegram token you receive from @BotFather const token = 'XXXX35XXXX:XXXX7DCYw5IsY6DHcwXXXXXXXXX'; // Create a bot that uses 'polling' to fetch new updates const bot = new TelegramBot(token, { polling: true }); // Matches "/echo [whatever]" bot.onText(/\/echo (.+)/, (msg, match) => { // 'msg' is the received Message from Telegram // 'match' is the result of executing the regexp above on the text content // of the message const chatId = msg.chat.id; const resp = match[1]; // the captured "whatever" // send back the matched "whatever" to the chat bot.sendMessage(chatId, resp); }); // Listen for any kind of message. There are different kinds of // messages. bot.on('message', (msg) => { const chatId = msg.chat.id; var user_profile = bot.getUserProfilePhotos(msg.from.id); user_profile.then(function (res) { var file_id = res.photos[0][0].file_id; var file = bot.getFile(file_id); file.then(function (result) { var file_path = result.file_path; var photo_url = `https://api.telegram.org/file/bot${token}/${file_path}` bot.sendMessage(chatId, photo_url); }); }); });
© www.soinside.com 2019 - 2024. All rights reserved.