Używam curl do aktualizacji moich kanałów publicznych. Ten rodzaj składni:
curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
Ale co chat_id
z kanałem prywatnym? To nie jest ten, który masz w prywatnym zaproszeniu.
Ponieważ teraz możemy przekazać nazwę użytkownika kanału (w formacie @nazwa_kanału) w miejsce chat_id we wszystkich metodach (i zamiast from_chat_id w forwardMessage). Ale jaka jest nazwa @channelusername kanału prywatnego, którym administruję?
telegram-bot
aborruso
źródło
źródło
Odpowiedzi:
Znalazłem sposób na pisanie na kanałach prywatnych.
Wyślij wiadomość na ten kanał przez Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
W odpowiedzi otrzymasz informacje z chat_id Twojego kanału.
{"ok": true, "result": {"chat": { "id": -1001005582487, "title": "Testuj kanał prywatny", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}
Teraz możesz przekonwertować kanał z powrotem na prywatny (usuwając link do kanału) i wysłać wiadomość bezpośrednio na ten chat_id „-1001005582487”
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123
źródło
Udostępnij kanał jako publiczny nie może zrobić użytkownik, który ma co najmniej 5 publicznych grup / kanałów, więc ... problem nie został rozwiązany. Tak, możesz odwołać jeden z nich, ale na razie nie możemy odzyskać identyfikatora czatu w inny sposób.
Czy ktoś znalazł rozwiązanie w tej sprawie?
aktualizacja
Znalazłem szalone rozwiązanie:
Więc ... Twój identyfikator kanału to „-1001055587116”. Magia się wydarzyła :)
Rozwiązanie znalezione tutaj: https://github.com/GabrielRF/telegram-id#web-channel-id
źródło
@channel_username
, ale chociaż jest prywatny,@channel_username
nie działa dla mnie! Skorzystałem z opublikowanego rozwiązania i-100
prefiks będzie działał wiecznie, ale po 4 latach nadal działa!Najłatwiej jest zaprosić @get_id_bot na swój czat, a następnie wpisać:
W Twoim czacie
źródło
/start @get_id_bot
a/my_id @get_id_bot
przestrzeń wydaje się ważna. Dodaj@get_id_bot
jako członka i nadaj tylko postowi uprawnienia administratora. Usuń go ze względów bezpieczeństwa po otrzymaniu identyfikatora.Otwórz kanał prywatny, a następnie:
na kliencie internetowym :
if
to na przykład https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 to identyfikator kanałuna telefonie komórkowym i komputerze :
if
jest to na przykład https://t.me/c/1192292378/31then
1192292378 to identyfikator kanału (bonus: 31 to identyfikator wiadomości)w Plus Messenger na Androida :
WARNING
pamiętaj, aby dodać prefiks -100 podczas korzystania z Telegram Bot API:if
ID kanału to na przykład 1192292378then
powinieneś użyć -1001192292378źródło
Ty też możesz to zrobić:
Krok 1) Zmień swój kanał prywatny na kanał publiczny
Krok 2) Ustaw nazwę kanału dla tego kanału
Krok 3), a następnie możesz zmienić ten kanał na prywatny
Krok 4) Teraz wysyłanie wiadomości za pomocą @ChannelName, które ustawiłeś w kroku 3
Uwaga: w kroku 1 możesz na krótki czas zmienić jeden ze swoich kanałów publicznych na prywatny.
źródło
Nie ma potrzeby konwertowania kanału na publiczny, a następnie ustaw go jako prywatny.
znajdź identyfikator swojego prywatnego kanału. (Istnieje wiele metod, aby to zrobić, na przykład zobacz tę odpowiedź SO )
curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = mój przykładowy tekst"
zamień xxxxxx: yyyyyyyyyyy na swój identyfikator bota, a CHAT_ID na identyfikator kanału znaleziony w kroku 1. Więc jeśli identyfikator kanału to 1234, będzie to chat_id = -1001234.
Gotowe!
źródło
Identyfikator Twojego kanału prywatnego to część XXXXXX (między „p = c” a podkreśleniem). Aby go użyć, po prostu dodaj przed nim „-100”. Jeśli więc „XXXXXX” to „4785444554”, identyfikator Twojego kanału prywatnego to „-1004785444554”.
źródło
Na razie możesz napisać link z zaproszeniem do bota @ nazwa_użytkownika_to_id_bota, a otrzymasz identyfikator:
przykład:
działa również z publicznymi czatami, kanałami, a nawet użytkownikami
źródło
Opcja, którą robię, to użycie popularnego Plus Messenger na Androida. Link do sklepu Play to: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en
Możesz kliknąć kanał, aw Informacjach o kanale pod nazwą grupy można znaleźć identyfikator kanału.
Identyfikatory supergrupy i kanału będą wyglądać jak 1068773197 w programie Plus Messenger. Do użytku w interfejsie API możesz poprzedzić -100, co spowoduje, że będzie to -1001068773197.
źródło
Znalazłem rozwiązanie dla TelegramBotApi dla Pythona. Może zadziała w innych językach.
Po prostu dodaję mojego bota do kanału prywatnego i robię to:
W konsoli otrzymuję odpowiedź ze wszystkimi potrzebnymi informacjami.
źródło
POTRZEBNA ODPOWIEDŹ:
Powinieneś dodać i ustawić swojego BOTa jako administratora kanału PRYWATNEGO , w przeciwnym razie
chat not found
wystąpi błąd.źródło