チャンネルのメッセージに直接アクセスしてウェブページに表示することはできません。 ただし、ボットを作成して、そこに到着したメッセージを処理し、サイトに表示する必要がある場所に送信することができます。 そして、あなたは準備ができて使用することができます。
Habréでこの注目すべきボット- ジャーナリスト (@JournalistBot)がまだ言及されていないのは奇妙です。 このサイトはそのベータ版を示していますが、安定している以上に機能します。
ボットを簡単にインストールし、新しいジャーナリストチャネルを設定したら、そこからウィジェットコードを取得します。このコードは、メッセージのアダプティブな垂直フィードを表示するdivなどのWebサイトに配置する必要があります。
<p class="center"><a href="https://t.me/channelname" target="_blank"></a></p> <script id="journalist-broadcast-353945930" async defer src="https://journali.st/broadcasts/353945930-widget-10.js"></script>
353945930は、ジャーナリストボットのチャンネルのIDです。 widget-10の10は、最近表示された投稿の数です。 変更できます。
チャンネルの新しいメッセージは、直接、または他のチャンネルから転送することでJournalistBotに追加されます。 画像とテキストの両方が存在するメッセージが、画像またはテキストのいずれかで完全に届かない場合があります(唯一のバグに気付きました)。 それ以外の場合、すべてが同等です。 複数のチャンネルを作成できます。
ウィジェットの主な魅力:
- コードはiframeなしで直接デプロイされます。
- 見た目(それ自体が素敵でスタイリッシュ)は、CSSで簡単に再構成できます。
- 新しいメッセージが到着するとすぐにチャンネルから自動的にダウンロードされます(上部に表示されます)
Webサイトを通じてプロキシチャネルデータ(https://journali.st/broadcasts/353945930-widget-10.js)-小さなハックを作成できます。 その後、それらを少し編集することが可能になります。
たとえば、このようなプロキシデータキャッシュを5分間実装しました。これにより、別のスクリプト/misc/image.phpですべての画像のサイズが縮小されます。
ジャーナリストのプロキシコード
<?php $file = "journalist.cache.js"; $LastModified_unix = filemtime($file); $LastModified = gmdate("D, d MYH:i:s \G\M\T", $LastModified_unix); $IfModifiedSince = false; if (isset($_ENV['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5)); if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5)); if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) { header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); exit; } header('Last-Modified: '. $LastModified); if (!file_exists($file) || (time() - filemtime($file)) > 1200) { $data = file_get_contents("https://journali.st/broadcasts/353945930-widget-10.js"); $data = str_replace("https://images-onepick-opensocial.googleusercontent.com/gadgets/proxy?container=onepick&url=", "/misc/image.php?size=310&url=", $data); file_put_contents($file, $data); } readfile($file); ?>
上記のスクリプトsrcでは、プロキシへのリンクを変更する必要があります。 新しいメッセージは、当然のことながら、プロキシを迂回して直接クライアントに届きます。
別の推奨ファイルの改良:制限された高さのブロック用のスクロールバー(標準またはJQueryプラグイン)、ライトボックス画像(サーバー側でclass-aを追加するかクライアント側javascriptのいずれか)に接続し、クリックメッセージでブロックを折りたたみます(干渉しないように)。
ライトボックスの場合、新しい画像(メッセージ)の動的な到着を考慮する必要があります。 この場合、たとえば10秒ごとにチャネルブロック内の画像の処理を開始したり、ジャーナリストのコードにイベントハンドラーをハングさせることができます。
一般に、ジャーナリストは非常に素晴らしく安定したアプリケーションであり、コンピューターや携帯電話からウェブサイトに情報をすばやく便利に追加できます。たとえば、ブロードキャストです。 別の電報チャネルとして、ジャーナリストのチャネルは機能しないため、必要に応じて、メッセージを複製する必要があります。
無料、広告なし。