キーボードのひび割れはなくなり、猫は一時停止を利用して、彼の悲惨な半飢えた存在を断固として宣言し、所有者が最終的に椅子からお尻を引き裂いて不幸な食べ物を与えることを期待しているようです。
-それでこれを見て...それはどうですか...
「はい、はい、私も忘れました。」 だから、同義語を教えてください?
しかし、悲しいかな、私はウォーキング百科事典ではなく、彼女の座りがちな選択肢でもないので、妻を辞書にグーグルに送ることほど良いものは見つかりませんでした。
![](https://habrastorage.org/getpro/habr/post_images/503/350/994/5033509945e6ad3e2f4a9449e06ceca6.jpg)
-それで長い時間です! 私はあなたがより速く覚えると思った...
妻と私の間を駆け回るブリダンのロバである猫は、ついに私を良いものとして選んだ(私は不思議-重量か他のパラメーターによって?)そして、不幸な動物に餌をあげるために台所に行くしかなかった。 途中で、ブラウザの「ブックマーク」はVantacticaのすべての友達を保存するためではなく、本当に必要なリンクを思い出すことを意図しているという事実を妻にもたらす方法を考えます。音楽は友人によってレイアウトされましたが、私がそれのために維持したリンクは、これらの瓦bleの下に完全に埋まっていることが判明しました。
しかし、彼女がVantacticとTelegramを使用することを学んだ場合、...彼女はTelegramとVantacticの使用方法をすでに知っています! ユーレカ!
誰かがTelegramのボットは簡単だと言った? しかし、今それを取り、試してみましょう...
新しいボットのユーザー部分を登録する方法は、おそらく既に知っています。 そうでない場合は、 @ BotFatherをTelegramに追加して、彼と会話を始めてください。
@BotFatherは、公式のボット管理インターフェースです。 彼に加えて、多くのボット、YourBot、その他数人がボットの作成要求に応じています。 説明から判断すると、これらはいくつかのガスケットです。 それらを使用する場合、@ BotFatherを使用する必要があります。 私はそれらを理解していなかったので、それらの利点を明確にすることに感謝します。
シノニムボットを作成するときに最初に遭遇しなければならなかった問題は、シノニムの辞書の検索でした。
グーグル辞書のほとんどは、恐ろしい碑文と恐ろしい車をリストした碑文でいっぱいであり、著者の「創造」をあえて他の目的に使用した不幸な人の頭に落ちます。 よく描かれた脅威の数から判断すると、「ロシア語の著作権」を完全に、例外なく完全に持っています。 さらに、そのようなリソースの「目的」はどこでも、どのような方法でも定義されないことがあり、辞書のボリュームは通常5,000〜40,000ワードです。
辞書の一部はアルファベット順のリストです。最初のページには「a」という文字の単語が、2番目には「b」の文字が続きます。 ここでは、解析だけでなく、地獄のような布地をロードすることも別の問題に変わります。
そして、もちろん、どんなAPIの問題もありません。
最終的に、「591千の単語と語彙単位と2166千の同義語の接続」の説明で述べられているように、ボリュームの適切な辞書を見つけることができました。 唯一の欠点はAPIが完全に存在しないことでしたが、辞書自体(ひどい形式ではありますが)と安定したオンラインバージョンを合法的にダウンロードする機能によって相殺されました。
また、この特定の辞書には、古くて流通していない単語が多すぎ、逆に現代の単語が少なすぎるように思えました。 しかし、妻は、誰もが5年間で新しい絡み合った「セルフィー」、「カバー」、「透明性」を忘れるが、当局からの言語学者のトリックにもかかわらず、「間違いなく」、「少し」、「降伏」は言語で永遠に生きるだろうと指摘した。
良い製品には通常ひどいパッケージがあり、普通のでたらめは大きなボタンと飛行場のある美しい「貸出」の後ろに隠れているともう一度確信しています。
この時点で、給餌の良い猫は温かいアナログIDをなめることから脱却し、誰かが「クール」または「吸う」と言うことができるという事実にもかかわらず、彼が古典的な「ニャー」を変えないことを確認するかのように断言しました。
2番目の問題は、あなたに合ったボットの名前が忙しいということです。 私は幸福感に満ちた短い名前をたくさん試してみましたが、それらはすべて忙しく、タダアム-予想通り死んでいたことが判明しました。 その結果、長くて覚えにくい@synonim_botという名前を登録する必要がありました 。何らかの理由で、不法占拠者は彼に連絡せず、無料であることが判明しました。
![](https://habrastorage.org/files/ee4/815/ed9/ee4815ed92de4c409b74c7c168dc65a4.png)
つまり、スキーム全体は次のように機能します。
0. Webフックを設定します-サーバー上のスクリプトのアドレス(HTTPS!)をTelegram APIに伝えます。ユーザーがボットに何かを書き込むと、それが連絡します。
そして、ロジックを実装します。 ダイアグラム上- ボットSynonymのロジックの簡略バージョン。
私は意図的にホリバーと相互研磨を排除するために1行のコードを与えません。 あなたが知っていることを書いてください-ボットは気にしません。
今、テキスト:
1.ユーザーが何かをボットに書き込みます-コマンドまたは単語。
2. Telegram APIはスクリプトをヤンクし(アイテム0のURLを既に知っている)、次のようなものを渡します。
{ "update_id":12345678, "message": { "message_id":1234, "from": { "id":0123456789, "first_name":"Vasya", "username":"vapupkin" }, "chat": { "id":1234567890, "first_name":"Vasya", "username":"vapupkin", "type":"private" }, "date": 1451606400, "text":"preved" } }
3.次に、スクリプトは送信された内容を把握し、回答を提供する必要があります。
https://api.telegram.org/bot123456789:boLshoiogRomnIycOLlaideR/sendMessage?chat_id=1234567890&text=Taki%20Preved
送信するテキストのサイズに余裕を持たせるために、POSTでこれを書き換える方がおそらく正しいでしょうが、私の場合はこれで十分です:すべて同じインスタントメッセンジャーは、長い読み取りを目的としていません。
4. Telegram APIは次のようなものを返します。
{ "ok":true, "result": { "message_id”:1234, "from": { "id”:9876543210, "first_name":"", "username":"my_bot" }, "chat": { "id": 0123456789, "first_name":"Vasya", "username":"vapupkin", "type":"private" }, "date": 1451606500, "text":"Taki Preved" } }
この回答で、私は好きなように行動できることを理解しました(間違っている場合は修正してください)。 理論的には、統計はその基礎に基づいて収集できますが、私はより早い段階でそれを収集します。それは私にとってより便利です。
ユーザーが送信したコマンドの違いについてのいくつかの言葉と、駄洒落で申し訳ありませんが、言葉。
@BotFatherを使用してこのエコノミーをコマンドの形式にフォーマットすることにより、標準ユーザーの質問に対する標準ボットの回答を準備できます。ユーザーがスラッシュで行を開始すると、ユーザーに表示されます。 ボットのスクリプトでは、これらのコマンドをキャッチし(Telegram APIでスラッシュを前に付けて転送します)、答えを出し、さらなるスクリプトの実行をすぐに停止します。
![](https://habrastorage.org/files/533/64d/753/53364d753c114418bf2e6a0aba045639.png)
![](https://habrastorage.org/files/9f8/fb4/f74/9f8fb4f74ef84aef823d006bd46425eb.png)
ボットの辞書との通信は芸術的な価値を表すものではないため、許可なく削除します。 行う必要がある唯一のことは、辞書が入力された単語の同義語を見つけることができなかった場合に結果の欠如をキャッチすることでした。
![](https://habrastorage.org/files/1bd/2af/1ca/1bd2af1ca3fb4d3c9cb7b73f2f7bc5f1.png)
...また、ユーザーがフレーズ全体を入力した場合-辞書は方法を知らないため:
![](https://habrastorage.org/files/f85/f69/f56/f85f69f56a7e4f4b9bf43f336c774937.png)
3番目の問題は、実際の人々がボットを使い始めたとき、私を待っていました:
ええ...現代のテクノロジーは奇跡を起こすこともありますが、根本的なことに関する知識を完全に奪います。 要求された単語のほぼ半分には、エラーとタイプミス、および実行する必要がある何かが含まれていました。
ti病な希望で、私はすぐに私の最愛のダダタに急ぎましたが、壊れました:彼女は彼女の仕事を完全に果たして、言語隊全体の上で彼女の舌を振りませんでした。 奇妙なことに、グーグルは十分な結果をもたらさなかったので、一時的なオプションとしてYandex.Spellerをすぐにねじ込みました。 理論的には、支払いが行われ、パスポートの公証コピーが不要になるまで、何らかの方法で使用できます。
ヒントに感謝します。ロシア語でAPIを備えた無料のスペルチェックサービスが必要です。
4番目の問題がここで発見されました。単語がエラーなしで入力された場合、Yandex.Spellerは何も提供しません。 それはパルチザンとして単純に静かであり、統計を少し難しくします。
イバノヴォのすべてでそれについて叫ぶことなく、何らかの形でユーザー入力の修正を示すことは素晴らしいことです。 ボットのHTMLツールキットが少ないため、このアラートオプションを選択しました(今後修正する予定です)。
![](https://habrastorage.org/files/f56/7cb/d57/f567cbd57896456c9f1418e87768abc2.png)
彼は妻にテストを依頼し、ネットワークを介して同僚に配布するよう依頼しました。 ボットが誰かに必要であることが判明した場合、ボットを開発します。
PS:ボットを書くとき、Unixの猫(本物のキャラクター)はstar死しませんでした。 また、前でも後でもありません。
証明
![](https://habrastorage.org/files/549/c4d/f91/549c4df91c154563b2d48cd177ab202e.jpg)
参照:
ボットシノニム: telegram.me/synonim_bot
Trishin Synonyms Dictionary: www.trishin.ru/left/dictionary
Telegram API: tlgrm.ru/docs/bots/api#authorizing-your-bot