You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegram MiniApp如何使用shareMessage分享媒体内容?

Telegram Mini Apps shareMessage 方法使用指南(带图片分享)

方法可用性前提

首先确认你的Telegram客户端版本≥9.2(shareMessage是该版本新增的Web Apps API),可通过以下代码检查方法是否存在:

console.log('shareMessage是否可用:', !!window.Telegram?.WebApp?.shareMessage);

场景1:使用公开图片URL分享

直接构造包含图片URL的消息对象,调用shareMessage即可完成分享:

async function shareWithPublicImage() {
  if (!window.Telegram?.WebApp?.shareMessage) return;
  
  try {
    const messageConfig = {
      text: "自定义分享文案",
      photo: "https://你的公开图片URL" // 替换为实际可访问的图片地址
    };
    
    await window.Telegram.WebApp.shareMessage(messageConfig);
    console.log("分享成功");
  } catch (err) {
    console.error("分享失败:", err);
  }
}

// 调用方法
shareWithPublicImage();

场景2:使用Blob对象分享

如果是本地Blob格式的图片,需要先通过uploadFile上传到Telegram服务器,获取file_id后再执行分享:

async function shareWithBlobImage(imageBlob) {
  if (!window.Telegram?.WebApp?.shareMessage || !window.Telegram.WebApp.uploadFile) return;
  
  try {
    // 上传Blob到Telegram服务器
    const uploadResult = await window.Telegram.WebApp.uploadFile({
      file: imageBlob,
      fileName: "分享图片.png" // 自定义文件名
    });
    
    // 构造消息并发起分享
    const messageConfig = {
      text: "基于Blob的图片分享",
      photo: uploadResult.file_id
    };
    
    await window.Telegram.WebApp.shareMessage(messageConfig);
    console.log("分享成功");
  } catch (err) {
    console.error("分享失败:", err);
  }
}

// 调用示例(需传入已有的Blob对象)
// shareWithBlobImage(yourImageBlob);

关键注意事项

  • 公开图片URL必须是Telegram能正常抓取的地址(不能是本地localhost或内网地址)
  • Blob图片大小需符合Telegram限制(一般≤10MB)
  • shareMessage调用后会弹出Telegram的分享确认弹窗,需用户手动确认发送
  • 你提到的“通过msgId发送”是误解,该方法无需提前准备msgId,直接传入消息内容即可

内容的提问来源于stack exchange,提问作者hzzhyj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:25:06