Phải làm gì nếu bot xuất hiện trên Skype Đặt trạng thái Skype theo nhu cầu cá nhân của bạn

Theo sau một số ứng dụng nhắn tin tức thời và dịch vụ xã hội khác, Skype cũng quyết định “hợp pháp hóa” bot. Và vào cuối tháng 3 năm 2016, các nhà phát triển đã công bố Chức năng này trong ứng dụng của bạn. Nó nhằm mục đích gì? Skype bot, trên thực tế, tại sao nó có thể hữu ích đối với người dùng bình thường nhất và làm thế nào bạn có thể thêm một số loại bot cho chính mình?

Bot trong không gian ảo

Trên thực tế, bot không phải là một phát minh của công nghệ hiện đại. không gian ảo. Bot là chương trình máy tính, được thiết kế để “giả vờ” bằng mọi cách có thể một người bình thường trực tuyến. Và những con robot đầu tiên, thật kỳ lạ, lại xuất hiện... trong trò chơi máy tính. Với sự phát triển của các game bắn súng trực tuyến - chẳng hạn như DOOM, Quake và những thứ tương tự - mà người dùng bắt đầu viết cái gọi là bot - robot phần mềm có thể đồng hành cùng bạn trong các trận chiến trực tuyến. Rốt cuộc, không phải tất cả người chơi đều có quyền truy cập vào mạng máy tính, nhưng tôi vẫn muốn chơi...

Ngày nay, bot vừa là sự bổ sung dễ chịu vừa khó chịu cho hầu hết mọi công việc. mạng xã hội hoặc người đưa tin.

Lúc đầu họ chỉ chọc tức tôi vì sự ngu ngốc của họ. Tuy nhiên, theo thời gian, các lập trình viên nhận ra rằng bot cũng có thể được sử dụng để cung cấp dịch vụ hữu ích cho nhân loại. Và bây giờ một số lượng lớn bot được viết để đặt hàng và để trên cơ sở trả phí. Ví dụ: để trả lời các câu hỏi của khách hàng, đưa ra thông tin về từ khóa trong tin nhắn...

Chỉ định bot trong Skype

Robot phần mềm Skype bằng cách nào đó có thể bắt chước hành vi trực tuyến của một người sống. Kể từ khi được công bố, nhiều loại bot Skype đã xuất hiện. Một số chỉ đơn giản là giải trí cho người dùng bằng cách chơi với anh ta trò chơi khác nhau, những người khác có thể tìm kiếm thông tin hữu ích trên Internet, những người khác có thể trò chuyện...

Tóm lại, sự lựa chọn thực sự tuyệt vời. Tuy nhiên, hầu hết bot vẫn đang hoạt động tiếng anh, một số chỉ có ở Hoa Kỳ. Tuy nhiên, ngày càng có ít hạn chế hơn.

Để đảm bảo bot của bạn an toàn, bạn cần xem hồ sơ của nó trước khi thêm nó. Điều này phải chứa cụm từ “Skype Certified”. Ngoài ra, hình đại diện của bot luôn có hình lục giác, trong khi đối với tất cả những người dùng khác thì hình đại diện là hình tròn. Ngoài ra, bên cạnh hình đại diện của bot được phê duyệt còn có một “dấu tích” trên nền màu xám.

Làm thế nào bạn có thể thêm bot này hoặc bot kia? Nó khá đơn giản. Đối với điều này:

  1. Bạn cần tải Skype xuống thiết bị của mình;
  2. Các hành động tiếp theo phụ thuộc vào những gì hệ điều hành Skype hoạt động. Ví dụ: trên Android có một mục menu đặc biệt "Liên lạc". Đó là những gì nó được gọi - "Bot". Trong iOS có biểu tượng Bots trong tab "Gần đây". Phiên bản Skype Windows dành cho máy tính để bàn có một biểu tượng đặc biệt trên thanh công cụ bên cạnh. Trong phiên bản trình duyệt của Skype bạn cần chọn "Đánh giá bot";
  3. Tiếp theo, tất cả những gì bạn phải làm là nhấp vào "Thêm bot" hoặc "Bắt đầu".

Bạn có thể tìm thấy danh sách các bot được chứng nhận và phê duyệt trên trang dự án: https://support.skype.com/ru/faq/FA34655/dostupnye-boty-skype.

Nếu bot nhàm chán hoặc đáng ngờ, bạn có thể chặn hoặc xóa nó. Việc này được thực hiện theo cách tương tự như với các liên hệ phổ biến nhất trên Skype.

Vẫn cần nói thêm rằng bot chỉ khả dụng trong các phiên bản phát hành mới nhất của Skype. Vì vậy, việc cập nhật chương trình từ các nguồn chính thức là điều hợp lý.

Biết Bot Skype- nó là gì, bạn có thể mở rộng đáng kể khả năng sử dụng chương trình đa diện này để liên lạc và gọi điện.

Một người dùng có thể được thêm vào tài khoản Skype của bạn dưới nhiều biệt danh khác nhau. Thông thường, một trong những tin nhắn đầu tiên của anh ấy có nội dung như thế này:

này tôi đã tìm thấy tên của bạn trong danh bạ. Tôi 24 tuổi/nữ muốn trò chuyện và chia sẻ ảnh?

Sau đó cô ấy nói rằng tên cô ấy là Amanda và cô ấy đến từ Miami. Việc trao đổi thư từ chỉ được thực hiện bằng tiếng Anh, ngay cả khi bạn trả lời cô ấy bằng tiếng Nga. Cái này bot Skype. Bạn sẽ không nhận được câu trả lời rõ ràng từ cô ấy. Về nguyên tắc, các liên kết mà nó cung cấp có thể được mở; chúng không gây ra bất kỳ mối đe dọa tiềm ẩn nào. Nhưng bạn vẫn không nên nhập số thẻ ngân hàng của mình trên các trang web (trừ khi bạn thực sự muốn xem các cuộc trò chuyện video trả phí).

Tôi đính kèm toàn bộ thư từ:

Whoopie.kind25: xin chào

Evgeniy Yu.: Xin chào! Ai đây? Họ muốn gì?

Whoopie.kind25: này tôi đã tìm thấy tên bạn trong danh bạ. Tôi 24 tuổi/nữ muốn trò chuyện và chia sẻ ảnh?

Evgeniy Yu.: được rồi, bạn có thể

Evgeniy Yu.: đến từ Belarus, còn bạn?

Evgeniy Yu.: được rồi

Whoopie.kind25: tuyệt, tôi chỉ ở nhà buồn chán quá thôi! Tôi độc thân và đang tìm kiếm... bạn đã bao giờ quan hệ tình dục qua mạng chưa?

Evgeniy Yu.: không

Whoopie.kind25: cười lớn, gửi cho tôi một bức ảnh gần đây của bạn và cùng vui vẻ nào

Evgeniy Yu.: trước tiên bạn nên

Whoopie.kind25: ngọt ngào muốn xem ảnh của tôi không?

Evgeniy Yu.: vâng

Evgeniy Yu.: tốt

Whoopie.kind25: nói chuyện với tôi như một con đĩ... bạn có thích con gái ngực bự không? muốn xem một số bức ảnh ngực lớn nghịch ngợm?

Evgeniy Yu.: vâng

Evgeniy Yu.: làm ơn cho tôi nhiều hơn một cái

Whoopie.kind25: tôi đang bị ướt đây cưng muốn xem tôi xoa âm hộ của mình trên camera không!?

Evgeniy Yu.: không, cho tôi thêm ảnh đi

Evgeniy Yu.: cho tôi thêm ảnh nhé

Whoopie.kind25: Đừng lo lắng em yêu, trang web tôi đang truy cập MIỄN PHÍ khi tham gia trang web này bạn có việc cần làm là đăng ký họ cũng hỗ trợ điện thoại di động :)

Evgeniy Yu.: Làm thế nào tuổi Bạn?

Whoopie.kind25: điền thông tin cc của bạn CHỈ để xác minh Độ tuổi, thẻ của bạn sẽ không bị tính phí. được rồi bây giờ tôi đã sẵn sàng cho bạn rồi

Evgeny Yu.: > whoopie.kind25: được rồi tôi sẽ chỉ cho bạn xem 1 bức ảnh nghịch ngợm... http://i.imgur.com/zRAM2Uu.jpg

Làm ơn cho tôi thêm những bức ảnh nghịch ngợm nữa

Evgeniy Yu.: Thêm ảnh nữa thì sao?

Evgeniy Yu.: tôi đợi ảnh của bạn

Whoopie.kind25:k

Một thư từ khác:

Applesauce.bunny562: này

Evgeniy Yu.: xin chào, ai Bạn có phải?

Applesauce.bunny562: này tôi đã tìm thấy tên bạn trong danh bạ. Tôi 24 tuổi/nữ muốn trò chuyện và chia sẻ ảnh?

Evgeniy Yu.: được rồi

Evgeniy Yu.: vâng

Evgeniy Yu.: tôi đến từ Belarus

Applesauce.bunny562: tuyệt, tôi chỉ ở nhà buồn chán thôi! Tôi độc thân và đang tìm kiếm... bạn đã bao giờ quan hệ tình dục qua mạng chưa?

Evgeniy Yu.: chưa bao giờ có

Evgeniy Yu.: cười lớn, gửi cho tôi một bức ảnh gần đây của bạn và cùng vui vẻ nào

Applesauce.bunny562: cười lớn, gửi cho tôi một bức ảnh gần đây của bạn và cùng vui vẻ nào

Evgeniy Yu.: ngọt ngào muốn xem ảnh của tôi không?

Applesauce.bunny562: ngọt ngào muốn xem ảnh của tôi không?

Evgeniy Yu.: angie varona

Nói chuyện với tôi như một con đĩ... bạn có thích con gái ngực bự không? muốn xem một số bức ảnh ngực lớn nghịch ngợm?

Applesauce.bunny562: nói chuyện với tôi như một con đĩ... bạn có thích con gái ngực bự không? muốn xem một số bức ảnh ngực lớn nghịch ngợm?

Applesauce.bunny562: được rồi tôi sẽ chỉ cho bạn xem 1 bức ảnh nghịch ngợm... http://i.imgur.com/SDvojZZ.jpg

Evgeniy Yu.: tốt

Applesauce.bunny562: tôi đang bị ướt đây cưng muốn xem tôi xoa âm hộ của mình trên camera không!?

Evgeniy Yu.: vâng

Evgeniy Yu.: được rồi

Applesauce.bunny562: Đừng lo lắng, trang web tôi đang truy cập MIỄN PHÍ để tham gia trang này, tất cả những gì bạn phải làm là đăng ký vì họ cũng hỗ trợ điện thoại di động :)

Bạn đã có thể tìm thấy rất nhiều thư từ như vậy trên Internet.

Skype bot Amanda đã “gõ cửa” tôi với biệt danh whoopie.kind25, nhưng cũng có những biệt danh khác:

  • mega_punfs
  • akon4loveguy
  • lấp lánh.lovr69
  • niềm đam mê.dall62
  • lavonia.berk
  • ưu đãi thanh lịch842
  • sốt táo.bunny562
  • và vân vân.

Như bạn có thể thấy, bot thu hút bạn đến một số trang web. Để lôi kéo cô ấy, cô ấy nói rằng cô ấy có thân hình tròn trịa và bộ ngực khủng**. Sau đó, anh ấy đề nghị được xem cơ thể cô ấy qua webcam, nhưng cái này đã có trên trang web rồi :)

Liên kết đầu tiên mà bot đưa ra sẽ dẫn đến một trang web imgur hoàn toàn vô hại - http://imgur.com/a/PC6Hy. Thực chất đây là những bức ảnh của Angie Varona - một cô gái trở nên nổi tiếng nhờ con bot này. Ảnh của Angie Varona:




Giới thiệu về cách khởi chạy bot trong Skype - đã đến lúc tìm hiểu cách hoạt động của nó. Dưới vết cắt - Mô tả ngắn vấn đề có thể xảy ra. Dành cho những ai nóng lòng muốn xem kết quả, đây là - MetricsBot.

Khung Bot so với API bot Skype

Trước tiên, bạn nên hiểu rằng có Bot Framework, cho phép bạn tạo bot cho nhiều ứng dụng nhắn tin tức thời, bao gồm cả. và dành cho Skype, đồng thời có Skype Bot API, cho phép bạn tạo các bot dành riêng cho Skype. Mỗi cái đều có tài liệu riêng, thư mục bot riêng (?) và đăng ký bot riêng. Có vẻ rõ ràng đây là những thứ khác nhau, nhưng tôi đã dành khá nhiều thời gian để tìm hiểu tài liệu về Bot Framework và đăng ký bot trong đó, khi tôi tưởng rằng mình đang tạo một bot không có khung. Tiếp theo chúng ta sẽ nói cụ thể về. Skype Bot API, Bot Framework, chúng tôi không cần nó, chúng tôi cũng không cần phải đăng ký bất cứ thứ gì ở đó. Có Skype SDK cho Node.js và tôi cũng không sử dụng chúng, vì tôi đã viết bot bằng Python. .

Liên kết hữu ích

Để bắt đầu bộ nhỏ Liên kết hữu ích(tất cả các liên kết đều bằng tiếng Anh):
  • Ứng dụng của bạn (ở đây bạn cần tạo một ứng dụng mới và lấy id ứng dụng và bí mật ứng dụng khách)
  • Quản lý bot của bạn (ở đây bạn cần tạo bot mới, cho biết id ứng dụng đã nhận được trước đó)
Về nguyên tắc, từ tài liệu có thể thấy rõ cách thức hoạt động của bot và cách nó tương tác với Skype, vì vậy tôi sẽ không mô tả phần này - tôi sẽ kể cho bạn nghe về những khó khăn.

Ủy quyền

Đây hóa ra là phần tốn thời gian nhất đối với tôi. Tài liệu nói rằng để ủy quyền, bạn cần lấy mã thông báo và sau đó sử dụng nó trong tiêu đề HTTP cho mỗi yêu cầu:

Ủy quyền: Bearer oauth2-token

Tuy nhiên, vì lý do nào đó, tài liệu đã quên chỉ ra phạm vi nào sẽ được sử dụng để nhận mã thông báo. Câu trả lời đúng (có thể tìm thấy trong mã SDK Node.js) là https://graph.microsoft.com/.default.
Nhưng ở đây điều thú vị nhất bắt đầu - nếu bạn tạo một URL để người dùng xác nhận (= chủ sở hữu bot), thì bạn sẽ nhận được mã xác thực, sau đó thử đổi mã này lấy truy cập thẻ, thì vấn đề sẽ phát sinh ngay từ bước đầu tiên - khi mở URL đã tạo, Microsoft sẽ phàn nàn về phạm vi sai. Nhân tiện, phạm vi chính xác không có trong danh sách những lựa chọn khả thi trong tài liệu của Microsoft. Tôi đã cố gắng chỉ định một phạm vi khác - openid offline_access https://graph.microsoft.com/user.read, trong trường hợp này tôi có thể nhận được mã thông báo nhưng tôi không thể tương tác với Skype bằng nó.
Giải pháp hóa ra thật bất ngờ - để nhận được access_token, cần phải gửi yêu cầu POST thông thường:

Curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d "client_id= &client_secret= &grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" "https://login.microsoftonline.com/common/oauth2/v2.0/token"

Trả về phản hồi truy cập thẻhết hạn_in(không có bất kỳ làm mới_token). Tôi chưa bao giờ thấy OAuth như thế này trước đây.

Gửi tin nhắn

Gửi tin nhắn khá đơn giản -

POST /v2/conversations/8:alice/hoạt động HTTP/1.1
Máy chủ: apis.skype.com
Ủy quyền: Bearer oauth2-token
{
"tin nhắn": ("nội dung" : "Xin chào! (sóng)")
}

Yêu cầu được gửi đến apis.skype.com. Họ quên chỉ ra trong tài liệu rằng yêu cầu phải được gửi qua http S.
Bạn có thể sử dụng thẻ html trong văn bản. Chính xác những cái nào vẫn chưa được biết (không có danh sách trong tài liệu).
Có những hạn chế thú vị và không được mô tả đối với văn bản bạn gửi. Ví dụ: bạn không thể sử dụng các ký hiệu trong văn bản & , < > . Không có khả năng truyền biểu tượng & tạo ra một vấn đề khi truyền liên kết. Một vấn đề khác khi chuyển liên kết là các bản xem trước được tạo tự động cho mỗi liên kết. Trong bot MetricsBot của tôi có ba liên kết trong văn bản lời mời, Skype tạo ba bản xem trước. Vẫn chưa có cách nào để vô hiệu hóa điều này.

Xuất bản bot

Sau khi tạo bot, bạn có thể thử xuất bản nó (trước đó, số lượng người dùng bot bị giới hạn - chỉ 100 người có thể sử dụng nó). Quá trình xuất bản kéo dài bao lâu thì không rõ ràng; điều này không có trong tài liệu. Bot của tôi vẫn chưa được xuất bản. Trên diễn đàn chính thức, câu hỏi của tôi về chủ đề này bị bỏ qua (mặc dù nhân viên của Microsoft trả lời các câu hỏi khác của tôi).
Xin lưu ý rằng để xuất bản bot, bạn phải vô hiệu hóa việc sử dụng bot trong cuộc trò chuyện nhóm.

Mặt khác, việc tạo bot cho Skype khá đơn giản.

Giới thiệu về bot Telegram của tôi, bot này có thể hiển thị dữ liệu từ Google Analytics. Và sau đó Microsoft công bố ra mắt bot trong Skype - đã đến lúc tìm hiểu cách thức hoạt động của nó. Bên dưới phần cắt là một mô tả ngắn gọn về các vấn đề có thể xảy ra. Dành cho những ai nóng lòng muốn xem kết quả, đây là - MetricsBot.

Khung Bot so với API bot Skype

Trước tiên, bạn nên hiểu rằng có Bot Framework, cho phép bạn tạo bot cho nhiều ứng dụng nhắn tin tức thời, bao gồm cả. và dành cho Skype, đồng thời có Skype Bot API, cho phép bạn tạo các bot dành riêng cho Skype. Mỗi cái đều có tài liệu riêng, thư mục bot riêng (?) và đăng ký bot riêng. Có vẻ rõ ràng đây là những thứ khác nhau, nhưng tôi đã dành khá nhiều thời gian để tìm hiểu tài liệu về Bot Framework và đăng ký bot trong đó, khi tôi tưởng rằng mình đang tạo một bot không có khung. Tiếp theo chúng ta sẽ nói cụ thể về. Skype Bot API, Bot Framework, chúng tôi không cần nó, chúng tôi cũng không cần phải đăng ký bất cứ thứ gì ở đó. Có Skype SDK cho Node.js và tôi cũng không sử dụng chúng, vì tôi đã viết bot bằng Python. .

Liên kết hữu ích

Đầu tiên, một tập hợp nhỏ các liên kết hữu ích (tất cả các liên kết đều bằng tiếng Anh):

  • Ứng dụng của bạn (ở đây bạn cần tạo một ứng dụng mới và lấy id ứng dụng và bí mật ứng dụng khách)
  • Quản lý bot của bạn (ở đây bạn cần tạo bot mới, cho biết id ứng dụng đã nhận được trước đó)

Về nguyên tắc, từ tài liệu có thể thấy rõ cách thức hoạt động của bot và cách nó tương tác với Skype, vì vậy tôi sẽ không mô tả phần này - tôi sẽ kể cho bạn nghe về những khó khăn.

Ủy quyền

Đây hóa ra là phần tốn thời gian nhất đối với tôi. Tài liệu nói rằng để ủy quyền, bạn cần lấy mã thông báo và sau đó sử dụng nó trong tiêu đề HTTP cho mỗi yêu cầu:

Ủy quyền: Bearer oauth2-token

Tuy nhiên, vì lý do nào đó, tài liệu đã quên chỉ ra phạm vi nào sẽ được sử dụng để nhận mã thông báo. Câu trả lời đúng (có thể tìm thấy trong mã SDK Node.js) là https://graph.microsoft.com/.default.
Nhưng ở đây điều thú vị nhất bắt đầu - nếu bạn tạo một URL để người dùng xác nhận (= chủ sở hữu bot), thì bạn sẽ nhận được mã xác thực, sau đó thử đổi mã này lấy truy cập thẻ, thì vấn đề sẽ phát sinh ngay từ bước đầu tiên - khi mở URL đã tạo, Microsoft sẽ phàn nàn về phạm vi sai. Nhân tiện, phạm vi chính xác không có trong danh sách các tùy chọn có thể có trong tài liệu của Microsoft. Tôi đã cố gắng chỉ định một phạm vi khác - openid offline_access https://graph.microsoft.com/user.read, trong trường hợp này tôi có thể nhận được mã thông báo nhưng tôi không thể tương tác với Skype bằng nó.
Giải pháp hóa ra thật bất ngờ - để nhận được access_token, cần phải gửi yêu cầu POST thông thường:

Curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d "client_id= &client_secret= &grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" "https://login.microsoftonline.com/common/oauth2/v2.0/token"

Trả về phản hồi truy cập thẻhết hạn_in(không có bất kỳ làm mới_token). Tôi chưa bao giờ thấy OAuth như thế này trước đây.

Gửi tin nhắn

Gửi tin nhắn khá đơn giản -

POST /v2/conversations/8:alice/hoạt động HTTP/1.1
Máy chủ: apis.skype.com
Ủy quyền: Bearer oauth2-token
{
"tin nhắn": ("nội dung" : "Xin chào! (sóng)")
}

Yêu cầu được gửi đến apis.skype.com. Họ quên chỉ ra trong tài liệu rằng yêu cầu phải được gửi qua http S.
Bạn có thể sử dụng thẻ html trong văn bản. Chính xác những cái nào vẫn chưa được biết (không có danh sách trong tài liệu).
Có những hạn chế thú vị và không được mô tả đối với văn bản bạn gửi. Ví dụ: bạn không thể sử dụng các ký hiệu trong văn bản & , < > . Không có khả năng truyền biểu tượng & tạo ra một vấn đề khi truyền liên kết. Một vấn đề khác khi chuyển liên kết là các bản xem trước được tạo tự động cho mỗi liên kết. Trong bot MetricsBot của tôi có ba liên kết trong văn bản lời mời, Skype tạo ba bản xem trước. Vẫn chưa có cách nào để vô hiệu hóa điều này.

Xuất bản bot

Sau khi tạo bot, bạn có thể thử xuất bản nó (trước đó, số lượng người dùng bot bị giới hạn - chỉ 100 người có thể sử dụng nó). Quá trình xuất bản kéo dài bao lâu thì không rõ ràng; điều này không có trong tài liệu. Bot của tôi vẫn chưa được xuất bản. Trên diễn đàn chính thức, câu hỏi của tôi về chủ đề này bị bỏ qua (mặc dù nhân viên của Microsoft trả lời các câu hỏi khác của tôi).
Xin lưu ý rằng để xuất bản bot, bạn phải vô hiệu hóa việc sử dụng bot trong cuộc trò chuyện nhóm.

Mặt khác, việc tạo bot cho Skype khá đơn giản.

Từ lâu tôi đã muốn thử viết một số bot đơn giản để hiểu quá trình này. Bây giờ tôi đang đi nghỉ và có đủ thời gian rảnh để bắt đầu viết cho vui theo hướng này...

Tôi quyết định bắt đầu với một bot đơn giản chỉ có thể hoạt động với văn bản. Bot sẽ dựa trên nền tảng bot được công bố gần đây của Microsoft (Microsoft Bot Framework). Tôi thích nó vì về mặt lý thuyết, một bot được triển khai có thể hoạt động cho Skype, Telegram, web và nhiều tùy chọn khác. Để không viết một ứng dụng hoàn toàn vô dụng, tôi sẽ tạo một bot trợ lý cho nhà phát triển có thể thực hiện các hành động như:

  • Chuyển đổi một chuỗi thành chữ hoa
  • Chuyển đổi một chuỗi thành chữ thường
  • Nhận một hướng dẫn mới
  • Chuyển đổi một số từ bất kỳ hệ thống số nào sang bất kỳ hệ thống số nào
  • Chuyển đổi chuỗi Base64 thành văn bản thuần túy
  • Văn bản thuần túy thành chuỗi Base64
  • Nhận ngày từ chuỗi ở định dạng UNIX
  • Chuyển đổi ngày sang định dạng UNIX
  • Tạo mật khẩu có độ dài nhất định

Đối với những hành động như vậy, tôi thường viết những đoạn mã thuận tiện để sử dụng nếu cần thiết. Tôi sử dụng LINQPad để sắp xếp và chạy chúng. Nhưng đôi khi tôi có thể làm điều gì đó không phải trên máy tính hoặc thậm chí từ điện thoại thông minh, trong trường hợp đó bot của tôi có thể hữu ích. Nếu bạn có bất kỳ ý tưởng nào khác về chức năng có thể được thêm vào bot này, hãy viết thư cho tôi, tôi rất sẵn lòng triển khai chúng...

Bot sẽ nhận được một chuỗi làm đầu vào. Chúng ta sẽ tách lệnh và các tham số của nó bằng dấu cách. Bản thân lệnh sẽ tối đa khoảng trắng đầu tiên hoặc toàn bộ dòng nếu không có khoảng trắng.

Tôi sẽ không mô tả quá trình xử lý lệnh và cách chúng được thực thi, vì mọi thứ cực kỳ đơn giản và tôi sẽ xuất bản tất cả mã đã viết trên GitHub.

Hãy chuyển sang một điều thú vị hơn, cụ thể là tạo bot. Để hoạt động bạn cần có Visual Studio 2015, tôi khuyên bạn nên cài đặt các bản cập nhật có sẵn. Hãy tận dụng mẫu làm sẵnđể tạo bot “Mẫu ứng dụng Bot”, bạn có thể tải xuống từ liên kết này aka.ms/bf-bc-vstemplate

Kho lưu trữ zip kết quả phải được sao chép vào thư mục " %USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#"Sau này, chúng tôi đã có thể tạo bot mới từ mẫu này.

Ngay sau khi tạo, dự án đã cấu trúc sau

Chúng ta có thể chạy nó và kiểm tra xem nó có thể làm được những gì. Để thử nghiệm, có một ứng dụng riêng “Bot Framework Emulator”, bạn có thể tìm thấy nó từ đây http://download.botframework.com/botconnector/tools/emulator/publish.htm

Hãy khởi chạy ứng dụng và trình mô phỏng của chúng tôi.

Theo mặc định, bot có thể trả về độ dài của tin nhắn đã nhận; chức năng này được triển khai trong MessagesController:


Bây giờ tôi sẽ thêm chức năng được mô tả trước đó vào bot. Đối với điều này tôi sẽ thêm dự án mới“DeveloperToolsPack” sẽ là Thư viện lớp và tôi cũng sẽ thêm một dự án cho các bài kiểm tra Đơn vị.

Lớp DeveloperTools như sau:

Lớp công khai DeveloperTools ( Từ điển riêng _công cụ; public DeveloperTools() ( AddTool(new ToUpper()); AddTool(new ToLower()); AddTool(new NewGuid()); AddTool(new ConvertTo()); AddTool(new FromBase64()); AddTool(new ToBase64( )); AddTool(new FromUnixTime()); AddTool(mật khẩu mới()); void riêng AddTool(công cụ ITool) ( if (_tools == null) ( _tools = new Từ điển

(); ) if (!_tools.ContainsKey(tool.CommandName.ToLower())) ( _tools.Add(tool.CommandName.ToLower(), tool); ) ) chuỗi công khai Run(string str) ( if (!System.String. IsNullOrEmpty(str)) ( str = str.Trim(); var indexOfSpace = str.IndexOf(" ", StringComparison.Ordinal); lệnh chuỗi; var commandText = ""; if (indexOfSpace != -1) ( command = str .Substring(0, indexOfSpace).ToLower(); commandText = str.Substring(indexOfSpace+1, str.Length - indexOfSpace-1); else ( command = str.ToLower(); ) if (_tools.ContainsKey(command ) ) ( return _tools.Run(commandText); ) else ( if (command == "help") ( var returnString = new StringBuilder(); foreach (var tool in _tools) ( returnString.Append(tool.Value.Description + " \n\r"); ) return returnString.ToString(); ) return $"Command \"**(command)**\" không tìm thấy Xem \"**help**\" command."; ) return. "Vui lòng nhập một chuỗi"; ) )

Trong chính bot, trong “MessagesController”, chúng tôi sẽ thay thế việc xử lý tin nhắn nhận được bằng

Var devTools = new DeveloperToolsPack.DeveloperTools(); trả lại tin nhắn.CreateReplyMessage(developerTools.Run(message.Text));


Bạn có thể chạy và kiểm tra bot này.

Nếu mọi thứ hoạt động như bình thường, bạn có thể trực tiếp xuất bản. Hãy tạo một ứng dụng web thông thường trong Azure; bạn có thể sử dụng gói miễn phí vì có đủ năng lượng để thử nghiệm.

Bây giờ nhấp chuột phải vào dự án và chọn Xuất bản


Bây giờ bạn cần chọn "Ứng dụng web Microsoft Azure"

Và tìm ứng dụng đã tạo trước đó ở đó. Sau đó, bạn có thể nhấp vào nút “Xuất bản” và ứng dụng sẽ được xuất bản. Không còn nghi ngờ gì nữa, bot rất. Nền tảng của Microsoft rất tiện lợi và cho phép bạn tích hợp với các dịch vụ khác, đây chắc chắn là một điểm cộng rất lớn. Tất nhiên, các bot được tạo ra không chỉ giới hạn ở việc xử lý văn bản; chúng có thể làm được nhiều việc hơn nữa. hàm phức tạp. Trong bài viết này, tôi đã chỉ ra cách bạn có thể tạo một bot đơn giản nhưng đồng thời hữu ích cho Skype và xuất bản nó. Bot được tạo, trong số những thứ khác, có thể hoạt động trên nhiều nền tảng khác, chẳng hạn như Telegram, Facebook Messenger, GroupMe, Slack.

Chúc bạn lập trình vui vẻ.

tái bút Mã bot đã được thay đổi theo phiên bản mới Khung bot