Android -向特定号码发送电报消息

bvn4nwqk  于 2022-11-20  发布在  Android
关注(0)|答案(6)|浏览(262)

我正在尝试从我的Android应用程序中向特定号码发送Telegram消息。现在,我的代码启动Telegram应用程序,然后用户必须选择目的地。我想做的是将消息发送到指定号码,而不需要用户选择联系人。我的代码如下:

/**
 * Intent to send a telegram message
 * @param msg
 */
void intentMessageTelegram(String msg)
{
    final String appName = "org.telegram.messenger";
    final boolean isAppInstalled = isAppAvailable(mUIActivity.getApplicationContext(), appName);
    if (isAppInstalled) 
    {
        Intent myIntent = new Intent(Intent.ACTION_SEND);
        myIntent.setType("text/plain");
        myIntent.setPackage(appName);
        myIntent.putExtra(Intent.EXTRA_TEXT, msg);//
        mUIActivity.startActivity(Intent.createChooser(myIntent, "Share with"));
    } 
    else 
    {
        Toast.makeText(mUIActivity, "Telegram not Installed", Toast.LENGTH_SHORT).show();
    }
}
waxmsbnn

waxmsbnn1#

您不能发送到特殊号码,但您可以通过USERID发送

try {

    Intent telegramIntent = new Intent(Intent.ACTION_VIEW);
    telegramIntent.setData(Uri.parse("http://telegram.me/USERID"));
    startActivity(telegramIntent);

} catch (Exception e) {
        // show error message
}

此代码将向用户显示一个警告,提示用户选择支持电报URI的应用程序,如Telegram本身和Mobogram!

**提示:**不要设置包名。有些人会安装电报替代项,如mobogram。

sg3maiej

sg3maiej2#

Telegram Android应用程序无法直接向电报用户发送消息,因此如果您使用共享意图,您将获得电报/任何其他应用程序希望对共享消息执行的操作。在这种情况下,请打开联系人列表将此消息发送给他。
如果要将消息直接发送给Telegram用户,则应使用Telegram API https://core.telegram.org/api#getting-started
在应用程序中配置API密钥后,您可以使用这些方法发送消息、阅读消息,甚至获取电报联系人
https://core.telegram.org/methods

gdx19jrr

gdx19jrr3#

"这首歌很适合我"

try {
    Intent telegram = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/USER_NAME"));
     telegram.setPackage("org.telegram.messenger");
     startActivity(telegram);
    }catch (Exception e) 
    {
       Toast.makeText(getContext(), "Telegram app is not installed", Toast.LENGTH_LONG).show();
     }

**提示:**您可以通过单击电报配置文件选项获得USER_NAME,您将在帐户会话中获得用户名选项--〉如果用户名为“无”,请创建唯一的用户名,并在此处输入它的工作。

yks3o0rb

yks3o0rb4#

这一条对我很有效:
//检查在运行此代码之前是否先安装了应用程序

Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse("http://telegram.me/+UT_USER_ID_HERE"));
            final String appName = "org.telegram.messenger";
                    i.setPackage(appName);
            this.startActivity(i);
gc0ot86w

gc0ot86w5#

尝试像这样的意图tg://resolve?domain=YOUR_USER_ID它比https://t.me更直接

vsnjm48y

vsnjm48y6#

我用这个在后台发送消息:
此代码是用于通过url令牌bot发送消息API电报
1 -在xml上使用WebView,如下所示:

<WebView
    android:id="@+id/webView_sendToTelegram"
    android:layout_width="0dp"
    android:layout_height="0dp"/>

2 -在java上使用此代码:

public static void SendMessageToBotTelegram(String chatID, String text, String botToken,WebView webView) {
    webView.loadUrl(MessageFormat.format("https://api.telegram.org/bot{0}/sendMessage?chat_id={1}&text={2}", botToken, chatID, text));
}

chatID:您的电报id @RawDataBot,用于获取id
文本:文本消息
botToken:如果您没有机器人,则使用@BotFather作为创建机器人的机器人来获取消息
webView:您的id xml上的WebView

相关问题