做电报miniapp小程序的api干货分享

TG(Telearama)是一种广受欢迎的社交平台,它提供了丰富的功能和灵活的编程接口,使开发者可以通过编写代码来扩展和定制其功能。在本文中,我们将介绍TG社交平台的一些特点,并提供一些编程实例来说明如何使用它的编程接口。

  • TG 社交平台Q简介

TG是一种跨平台的即时通讯应用,允许用户发送文本消息、图片、音频和视频等多种类型的内容。它提供了端到端的加密功能,确保用户的隐私和数据安全。TG还支持群组和频道功能,用户可以创建和加入不同主题的群组,以及订阅自己感兴趣的频道。此外,TG还提供了一些高级功能,如机器人、内联模式和自定义键盘等,使用户可以更好地与其他用户交互和使用平台。

  • TG的编程接口(API)

TG提供了一套强大的编程接口,允许开发者通过编写代码与平台进行交互。它的AP|支持多种编程语言,如Python、JavaScript四Java等。通过使用TG的API,开发者可以实现以下功能:
在这里插入图片描述

//获取TG用户语言(做语言切换,首次进入获取用户在TG使用的默认语言,从而适配小程序语言)
Telegram.WebApp.initDataUnsafe.user.language_code
// 检查平台信息
Telegram.WebApp.platform
//检查是否可以扩展视图(通常在桌面端可用)
Telegram.WebApp.isExpanded
//检查是否支持主按钮(通常在移动端更常见)
Telegram.WebApp.MainButton
Telegram.WebApp.MainButton.isVisible
//获取TG账号信息
Telegram.WebApp.initDataUnsafe.user
//获取TG用户哈希值(做登录安全参数)
Telegram.WebApp.initData
// 请求将小程序展开到全屏模式
window.Telegram.WebApp.expand();
//小程序下拉不会关闭
window.Telegram.WebApp.disableVerticalSwipes()
//显示miniapp自带返回按钮
window.Telegram.WebApp.BackButton.show()
//隐藏主按钮
window.Telegram.WebApp.MainButton.hide()
//设置TG头部栏背景颜色
Telegram.WebApp.setHeaderColor('#fff');
//设置miniapp背景颜色
Telegram.WebApp.setBackgroundColor('#fff');
window.Telegram.WebApp.requestFullscreen();   //开启全屏
// 4. 错误振动反馈(双震动)
window.Telegram.WebApp.HapticFeedback.notificationOccurred('error');

// 5. 成功振动反馈
window.Telegram.WebApp.HapticFeedback.notificationOccurred('success');

// 6. 警告振动反馈
window.Telegram.WebApp.HapticFeedback.notificationOccurred('warning');
//7.摇一摇
window.Telegram.WebApp.Accelerometer.stop((stopped) => {
	if (stopped) {
		console.log('摇一摇已停止');
	}
});
//8.判断是否可以使用AccelerometerAPI(Bot API遇到8.0+版本)
window.Telegram.WebApp.Accelerometer.isStarted
//9.获取botAPI当前版本
window.Telegram.WebApp.version
window.Telegram.WebApp.requestFullscreen();   //开启全屏
// 4. 错误振动反馈(双震动)
window.Telegram.WebApp.HapticFeedback.notificationOccurred('error');

// 5. 成功振动反馈
window.Telegram.WebApp.HapticFeedback.notificationOccurred('success');

// 6. 警告振动反馈
window.Telegram.WebApp.HapticFeedback.notificationOccurred('warning');

//分享文本到聊天
Telegram.WebApp.switchInlineQuery('your text to share');

// 2. 分享到特定聊天
Telegram.WebApp.switchInlineQuery('your text to share', ['users', 'groups', 'channels']);

// 3. 分享到当前聊天
Telegram.WebApp.switchInlineQuery('your text to share', [], 'current');

//4.客户端会提示用户选择特定聊天,然后打开该聊天并在输入字段中插入机器人的用户名和指定的内联查询。您可以指定用户可以选择的聊天类型。它可以是以下一种或多种类型:用户、机器人、群组、频道。
Telegram.WebApp.switchInlineQuery(innerMode, ["users","groups"])

//5.TG打开外部链接,不关闭miniapp
Telegram.WebApp.openLink(url)

//6.TG打开内部链接,不关闭miniapp
Telegram.WebApp.openTelegramLink(`https://t.me/${e.botName}`)

//7.用来请求用户授权机器人向用户发送消息的权限。
Telegram.WebApp.requestWriteAccess

//关闭miniapp
Telegram.WebApp.close()

//将miniapp宽展全屏
Telegram.WebApp.expand()

//TG原生提示框
Telegram.WebApp.showConfirm('Are you sure you want to proceed?', (confirmed) => {
  if (confirmed) {
    // 用户点击确认
    console.log('User confirmed');
  } else {
    // 用户点击取消
    console.log('User cancelled');
  }
});

//一种在带有“关闭”按钮的简单警报中显示消息的方法。
Telegram.WebApp.showAlert

//显示原生弹窗的方法
Telegram.WebApp.showPopup

// 1. 基本设置和显示按钮
const mainButton = Telegram.WebApp.MainButton;
mainButton
    .setText('确认支付')        // 设置按钮文本
    .setParams({
        color: '#2ECC71',      // 自定义按钮颜色
        text_color: '#FFFFFF', // 自定义文字颜色
    })
    .show();                   // 显示按钮

// 2. 添加点击事件处理
mainButton.onClick(() => {
    // 处理点击事件
    console.log('按钮被点击');
});

// 3. 显示加载状态
mainButton.showProgress(); // 显示加载指示器
// 异步操作完成后
mainButton.hideProgress();

// 4. 禁用/启用按钮
mainButton.disable(); // 按钮变为不可点击状态
mainButton.enable();  // 重新启用按钮
让我们看看不同场景的使用方式:

表单提交场景

JavaScript的复制const mainButton = Telegram.WebApp.MainButton;

// 初始状态设置
mainButton
    .setText('提交表单')
    .show();

// 表单验证
function validateForm() {
    const isValid = // 表单验证逻辑
    mainButton.setActive(isValid); // 根据验证结果启用/禁用按钮
}

// 提交处理
mainButton.onClick(async () => {
    mainButton.showProgress();
    try {
        await submitForm();
        mainButton.hideProgress();
        // 提交成功处理
    } catch (error) {
        mainButton.hideProgress();
        // 错误处理
    }
});

多步骤操作场景

JavaScript的复制const mainButton = Telegram.WebApp.MainButton;
const secondaryButton = Telegram.WebApp.SecondaryButton;

function setupStepOne() {
    mainButton
        .setText('下一步')
        .show();
    
    secondaryButton
        .setText('返回')
        .setPosition('left')
        .show();
}

function setupStepTwo() {
    mainButton.setText('确认完成');
    secondaryButton.setText('上一步');
}

支付场景

JavaScript的复制const mainButton = Telegram.WebApp.MainButton;

function setupPaymentButton(amount) {
    mainButton
        .setText(`支付 ¥${amount}`)
        .setParams({
            color: '#4CAF50',        // 绿色按钮
            has_shine_effect: true   // 添加闪光效果突出显示
        })
        .show();

    mainButton.onClick(async () => {
        mainButton.showProgress();
        try {
            await processPayment();
            mainButton
                .setText('支付成功')
                .setParams({ color: '#2ECC71' });
        } catch (error) {
            mainButton
                .setText('重试支付')
                .setParams({ color: '#E74C3C' });
        }
        mainButton.hideProgress();
    });
}

11月18号,Telegram更新了新的API功能,点这里查看
在这里插入图片描述

### 创建和使用 Telegram 机器人 #### 准备工作 为了创建并使用 Telegram 机器人,需先安装 Python 和 `python-telegram-bot` 库。通过命令行工具执行如下指令来完成库的安装[^1]。 ```bash pip install python-telegram-bot --upgrade ``` #### 获取 Bot Token 前往 [@BotFather](https://core.telegram.org/bots#botfather),这是官方提供的用于管理机器人的账户,在这里可以创建新 bot 并获取 token。token 是后续开发过程中与 API 进行交互的关键凭证[^2]。 #### 编写基础代码框架 下面是一个简单的例子展示如何构建最基础的消息回复功能: ```python from telegram import Update, ForceReply from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, MessageHandler, filters async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: user = update.effective_user await update.message.reply_html( rf"Hi {user.mention_html()}!", reply_markup=ForceReply(selective=True), ) def main() -> None: application = ApplicationBuilder().token("YOUR TOKEN HERE").build() application.add_handler(CommandHandler("start", start)) # Start the Bot application.run_polling() if __name__ == "__main__": main() ``` 这段程序定义了一个 `/start` 命令处理器,当用户发送该命令时会触发相应的处理函数并向对方打招呼[^3]。 #### 扩展更多特性 除了基本的文字消息外,还可以实现文件传输、地理位置共享等功能。这通常涉及到调用不同的方法以及设置额外参数。例如,要让机器人能够响应图片上传请求,则可以在上面的基础上增加对应的 handler 处理逻辑[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值