স্রেফ গুগল শিট ব্যবহার করে কীভাবে স্লট বট তৈরি করা যায়

সূত্র: বেটারক্লাউড

টিএল; ডাঃ

এই নিবন্ধে, আমি কীভাবে একটি স্ল্যাক সার্ভারলেস অ্যাপ্লিকেশন বিকাশ করব যা একটি গুগল শীট থেকে তথ্য পড়ে এবং এটি কোনও ব্যবহারকারীর কাছে ফিরিয়ে দেয় explain

ব্যাকস্টোরি

আমি এমন একটি প্রতিষ্ঠানের হয়ে কাজ করার সৌভাগ্যবান যা তার কর্মীদের সুস্থতার বিষয়ে এতটা যত্নশীল। সংস্থাটি তার কর্মীদের যে পার্ক দেয় তা হ'ল পূর্ণ-পরিষেবা থাকার ব্যবস্থা। নতুন কর্মীরা যখন সম্পত্তিটিতে কোনও জায়গার জন্য আবেদন করেন, তাদের সাধারণত অপেক্ষার তালিকায় রাখা হয়। স্থান উপলব্ধ হওয়ার সাথে সাথে এই অপেক্ষার তালিকাটি পর্দার আড়ালে ম্যানুয়ালি আপডেট করা হয়।

অপেক্ষার তালিকায় তাদের স্ট্যাটাস সম্পর্কে অবহিত হওয়া কর্মচারীদের সাধারণত সুবিধা টিমে একটি বার্তা পাঠাতে হবে এবং প্রতিক্রিয়ার জন্য অপেক্ষা করতে হবে wait সুবিধা টিম সমস্ত কর্মীদের আপডেটের অনুরোধ জানালে অবহিত রাখার জন্য সর্বাত্মক চেষ্টা করে। তবে এটি খুব দক্ষ প্রক্রিয়া ছিল না। আমার সপ্তাহান্তিকের মধ্যে স্ল্যাক বট দিয়ে এই প্রক্রিয়াটি স্বয়ংক্রিয় করার ধারণা ছিল যখন আমাকে আমার অপেক্ষার স্থিতি সম্পর্কে জানাতে হয়েছিল এবং আমার যে সহকর্মীর কাছে বার্তা প্রেরণের কথা ছিল তার কাছে পৌঁছানো সম্ভব হয়নি। ধারণাটি উত্তেজনাপূর্ণ লাগছিল কারণ আমরা সকলেই স্ল্যাককে সংস্থার ব্যাপী যোগাযোগের জন্য ব্যবহার করেছি।

পরের সপ্তাহে আমি জায়গাটি বরাদ্দের দায়িত্বে থাকা সুবিধার্থী দলের সদস্যের সাথে চ্যাট করেছি। তিনি এই ধারণাটি পছন্দ করেছিলেন এবং এটি কীভাবে এটি অন্যান্য কাজের জন্য মূল্যবান সময় বাঁচাতে সহায়তা করবে। আমরা একমত হয়েছি যে একটি বট প্রক্রিয়াটি স্বয়ংক্রিয় করবে। বটটি ব্যবহারকারীর ইমেলটিকে ইনপুট হিসাবে গ্রহণ করে, ম্যাপিংয়ের তথ্য সহ গুগল শীট থেকে ডেটা পড়ে এবং তালিকায় তাদের বর্তমান নম্বর ব্যবহারকারীকে অবহিত করে।

এই নিবন্ধের বাকি অংশগুলি বর্ণনা করে যে আমি কীভাবে এই বট তৈরি করেছি।

একটি সমাধান নকশা

সমাধানটির নকশা শুরু করার জন্য, এখানে কার্যকরী এবং অ-কার্যকরী প্রয়োজনীয়তা যা সমস্যার ক্ষেত্র নির্ধারণ করে এবং সমাধানটি গাইড করে guide

ক্রিয়ামূলক প্রয়োজনীয়তা

  • সিস্টেমে (স্ল্যাক অ্যাপ এবং নির্ভরতা) একটি কমান্ড রয়েছে যা স্ল্যাক ওয়ার্কস্পেসের যে কোনও জায়গায় অ্যাক্সেস করা যায়
  • সিস্টেমটি কর্মচারীর ইমেলটিকে ইনপুট হিসাবে গ্রহণ করে
  • সিস্টেমটি কর্মচারীর ইমেল ঠিকানাটিকে তালিকার সংখ্যার সাথে তুলনা করে এবং নম্বর সম্পর্কে তথ্য দেয়
  • এন্ট্রিটি অবৈধ বা তালিকায় পাওয়া না গেলে সিস্টেমটি একটি উপযুক্ত উত্তর প্রদান করে।

অকার্যকর প্রয়োজনীয়তা

  • সিস্টেমে প্রায় 100% আপটাইম রয়েছে (সুতরাং এটি যে কোনও সময়, এমনকি সাপ্তাহিক ছুটির দিনেও ব্যবহার করা যেতে পারে)
  • সিস্টেমটি ব্যবহারকারীদের অনুরোধগুলিতে দ্রুত সাড়া দেয়
  • সিস্টেমগুলি একই সাথে তাদের অবরুদ্ধ না করে একাধিক অনুরোধ চালাতে পারে
  • সিস্টেমের কোনও রক্ষণাবেক্ষণের ব্যয় নেই।

উপলব্ধ বিকল্পগুলি গবেষণা করুন

এই অংশে, আমরা আমাদের চাহিদা পূরণের জন্য উপলব্ধ বিকল্পগুলি পরীক্ষা করি examine

কার্যকরী প্রয়োজন নং 1

আমাদের প্রথম প্রয়োজনটি ওয়ার্কস্পেসের যে কোনও জায়গায় পাওয়া যাবে একটি নির্দিষ্ট কমান্ড। স্ল্যাক এপিআই ডকুমেন্টেশনের একটি তাত্ক্ষণিক দৃষ্টিভঙ্গি দেখায় যে এটি অর্জনের দুটি সহজ উপায় রয়েছে:

  • আউটবাউন্ড ওয়েবহুকস
  • স্ল্যাশ কমান্ড

আমাদের এই দুটি বিকল্পের মধ্যে চয়ন করতে সহায়তা করার জন্য, আমরা নোট করি যে আউটবাউন্ড ওয়েবহুকগুলি স্ল্যাক এপিআই-র ভবিষ্যতের সংস্করণগুলিতে আর সমর্থিত হবে না। এগুলি একটি স্ল্যাক ওয়ার্কস্পেসেও অনুপলব্ধ কারণ তারা সাধারণত একটি নির্দিষ্ট চ্যানেল শুনছেন। পরবর্তী আচরণটি আমাদের প্রথম ফাংশন প্রয়োজনীয়তার লঙ্ঘন করে যে কমান্ডটি পুরো কর্মপরিসর জুড়ে পাওয়া উচিত। এটাও গুরুত্বপূর্ণ যে আউটবাউন্ড ওয়েবহুকগুলি স্বয়ংক্রিয়ভাবে ইমেল ঠিকানাগুলিকে ইমেল লিঙ্কগুলিতে রূপান্তর করে, সার্ভারে প্রেরিত ইমেল ঠিকানাগুলি পার্স করা আরও কঠিন করে তোলে। স্ল্যাশ কমান্ডগুলির মধ্যে এগুলির কোনও সীমাবদ্ধতা নেই এবং এটি প্রথম প্রয়োজনের সুস্পষ্ট সমাধান। আমি এই নিবন্ধে ওয়েবহুক পদ্ধতির বিষয়ে শিখেছি, যা একইরকম একটি বিষয় জুড়ে।

ফাংশন প্রয়োজন নং 2

আমাদের দ্বিতীয় প্রয়োজনটি হ'ল সিস্টেমটি কর্মচারীর ইমেল ঠিকানাটিকে ইনপুট হিসাবে গ্রহণ করে। এই প্রয়োজনের অর্থ হ'ল আমাদের এমন একটি ইন্টারফেসের সংজ্ঞা / নকশা তৈরি করতে হবে যার মাধ্যমে কর্মচারী তার ইমেল ঠিকানা সরবরাহ করতে পারে। যেহেতু আমরা স্ল্যাশ কমান্ডগুলি ব্যবহার করছি, তাই আমরা একটি কমান্ড ইন্টারফেসের সাথে থাকব। আমাদের সেরা ধারণাটি একটি স্বজ্ঞাত এবং বুদ্ধিমান কমান্ড ইন্টারফেসটি ডিজাইন করা। একটি স্ল্যাশ এপিআই নথিগুলিতে আবার একটি সাধারণ স্ল্যাশ কমান্ড দেখতে পাওয়া যায়:

আমি @ ক্রাশার্ম্ডকে # ডি-সোস্যাল @ ওয়ার্ফের জন্য একটি জন্মদিনের কেক বেক করতে বলি

উপরের কমান্ড লাইনে, টোডো হ'ল আদেশ এবং বাক্যটির বাকী অংশটি পাঠ্য। আমাদের স্ল্যাশ কমান্ডের জন্য একটি যুক্তিসঙ্গত নকশা যা এই কাঠামোটি অনুসরণ করে:

/ listbot চেক করুন [email protected]

লিস্টবট আমাদের অ্যাপ্লিকেশনটিকে ট্রিগার করে এবং পাঠ্যটিতে ফরোয়ার্ড করে যাতে একটি চেক অ্যাকশন এবং একটি আর্গুমেন্ট [email protected] রয়েছে। আমি এই কাঠামোটি বেছে নিয়েছি কারণ এটি প্রচলিত সিএলআই-তে কমান্ড ব্যবহারের অনুরূপ to উদাহরণস্বরূপ git যোগ করুন myfile.txt।

কার্যকরী প্রয়োজন নং 3

আমাদের তৃতীয় কার্যকরী প্রয়োজনীয়তা হ'ল সিস্টেমটি কোনও গুগল শীটে কর্মচারীর ইমেল চেক করতে এবং ইমেলের সাথে সম্পর্কিত নম্বরটি ফিরিয়ে দিতে পারে। এই প্রয়োজনীয়তাটি পূরণ করার জন্য আমাদের কিছু প্রকারের ব্যাকএন্ডের দরকার যা স্ল্যাকের কাছ থেকে আমাদের কমান্ডটি গ্রহণ করবে এবং এটি Google পত্রক থেকে ডেটা পড়তে সক্ষম হওয়া দরকার। আমরা যে কিভাবে করব? আমার ক্ষেত্রে, আমার কাছে কোনও ক্লায়েন্টকে গুগল পত্রকগুলিতে কিছু নির্দিষ্ট কাজ স্বয়ংক্রিয় করতে সহায়তা করার অভিজ্ঞতা ছিল যাতে আমি উত্তরটি জানতাম। তবে আমি মনে করি গুগল অ্যাপ স্ক্রিপ্টগুলিতে যাওয়ার জন্য একটু গুগল অনুসন্ধানই যথেষ্ট। এটি একটি জাভাস্ক্রিপ্ট-ভিত্তিক প্ল্যাটফর্ম যা আমাদের গুগল অ্যাপ্লিকেশনগুলির কার্যকারিতা প্রসারিত করতে সহায়তা করবে (যার মধ্যে কেবল একটি পাত)।

একটি গুগল অ্যাপ স্ক্রিপ্টের সাহায্যে আমরা একটি গুগল শীট থেকে ডেটা পড়তে পারি। এটি আমাদের তৃতীয় কার্যক্ষম প্রয়োজনের প্রথম অংশটি সমাধান করে। মজার বিষয় হল, আমরা একটি ওয়েব অ্যাপ্লিকেশন হিসাবে স্ক্রিপ্টটিও সরবরাহ করতে পারি, যা কার্যকরভাবে আমাদের কার্যকরী প্রয়োজনের দ্বিতীয় অংশটি সমাধান করে। ভয়েলা! আমাদের তৃতীয় কার্যকরী প্রয়োজনীয়তা পূরণ করা হয়। গুগল অ্যাপ্লিকেশন স্ক্রিপ্টগুলি ব্যবহারের সর্বাধিক সুবিধা হ'ল এটি সমস্ত অ-কার্যকরী প্রয়োজনীয়তা পূরণ করে।

দ্রষ্টব্য: একটি বিকল্প হ'ল একটি হিরোকু ডায়নো দৃষ্টান্তে একটি নোড.জেএস সার্ভার সেট আপ করা এবং আমাদের গুগল শিট থেকে ডেটা পড়তে গুগল পত্রক এপিআই ব্যবহার করা উচিত। তবে হেরোকু-মুক্ত ডায়নোগুলি প্রচুর পরিমাণে ঘুমাতে পছন্দ করে, যা আমাদের দ্রুত প্রতিক্রিয়া এবং প্রায় 100% প্রাপ্যতার জন্য আমাদের অ-কার্যক্ষম প্রয়োজনগুলি পূরণ করে না। অবশ্যই, হিরোকু কেবলমাত্র সেখানেই নেই PaaS সরবরাহকারী। তবে অন্যান্য বেশিরভাগ সরবরাহকারীর ক্ষেত্রে একই সীমাবদ্ধতা রয়েছে এবং এগুলি একটি সাধারণ বটের জন্য তুলনামূলকভাবে অত্যধিক।

ফাংশন প্রয়োজন নং 4

আমাদের চতুর্থ ক্রিয়ামূলক প্রয়োজনীয়তা যুক্তি ছাড়া কিছুই নয় যা আমাদের গুগল অ্যাপ স্ক্রিপ্টে কার্যকর করা হয়। সুতরাং এটিও পূরণ হয়।

বাস্তবায়ন

আমাদের সমাধানটি কার্যকর করতে শুরু করার জন্য আমাদের নীচের পরিবেশটি স্থাপন করতে হবে:

পরিবেশ সেটআপ

  • আপনার কাছে প্রশাসকের অ্যাক্সেস রয়েছে এমন একটি স্ল্যাক ওয়ার্কস্পেস (এটি তৈরি করতে স্ল্যাক.কম এ যান)।
  • নিম্নলিখিত কলামের কাঠামো সহ একটি গুগল পত্রক (এটি আসল শীটের একটি সরলীকৃত সংস্করণ)

স্ল্যাক অ্যাপ সেটআপ

পরিবেশ স্থাপনের পরে আমাদের স্ল্যাক অ্যাপটি তৈরি এবং কনফিগার করতে হবে। এটি করার প্রক্রিয়াটি মোটামুটি সহজবোধ্য এবং স্ল্যাক এপিআই নথিগুলিতে বিস্তারিত detailed পদক্ষেপগুলির একটি সংক্ষিপ্ত বিবরণ এখানে:

  • এপিআই হোম পৃষ্ঠা থেকে, স্টার্ট বিল্ডিং সিটিএ বোতামটি ক্লিক করুন। এটি এমন একটি পপ-আপ উইন্ডো খুলবে যেখানে আপনি অ্যাপটির নাম এবং ওয়ার্কস্পেসের যেখানে আপনি এটি ইনস্টল করতে চান তা সরবরাহ করে।
  • পরবর্তী পৃষ্ঠায়, বৈশিষ্ট্য এবং ফাংশন যুক্ত বিভাগে স্ল্যাশ কমান্ড নির্বাচন করুন। এটি এমন একটি পৃষ্ঠায় নেভিগেট করে যেখানে আপনি স্ল্যাশ কমান্ডটি কনফিগার করতে পারেন। নিম্নলিখিত হিসাবে কনফিগার করুন:

দ্রষ্টব্য: "চ্যানেলগুলি, ব্যবহারকারী এবং আপনার অ্যাপ্লিকেশনটিতে প্রেরিত লিঙ্কগুলি" চেক বাক্সটি নির্বাচন করবেন না। এইভাবে আমরা ইমেলের কাঁচা পাঠ্য পেতে পারি। এছাড়াও, অনুরোধ URL ফিল্ডটি ফাঁকা ছেড়ে দিন। আমরা যখন আমাদের গুগল অ্যাপ স্ক্রিপ্ট স্থাপন করি তখন আমরা ক্ষেত্রটি পূরণ করব।

গুগল অ্যাপস স্ক্রিপ্টের সাহায্যে স্ল্যাক থেকে অনুরোধগুলি প্রক্রিয়া করা হচ্ছে

গুগল অ্যাপস স্ক্রিপ্ট দিয়ে শুরু করতে আপনি আগে তৈরি গুগল শিটটি খুলুন। সরঞ্জামদণ্ডে, সরঞ্জামগুলি> স্ক্রিপ্ট সম্পাদক ক্লিক করুন এবং আপনার ব্রাউজারে একটি নতুন পৃষ্ঠা খুলতে হবে যাতে স্ক্রিপ্ট সম্পাদক রয়েছে। এখানে আমরা আমাদের গুগল অ্যাপ স্ক্রিপ্ট তৈরি করি।

দ্রষ্টব্য: আপনি একা একা গুগল অ্যাপ স্ক্রিপ্টও তৈরি করতে পারেন। তবে এই পদ্ধতিটি এই নিবন্ধটির শিরোনামের সাথে মেলে না।

স্ল্যাক থেকে অনুরোধগুলি প্রক্রিয়া করার জন্য আমাদের এগুলি করতে হবে:

  • অনুরোধ পাঠ্য
  • অনুরোধ পাঠ্য বিশ্লেষণ করুন
  • সঠিক হ্যান্ডলারের কাছে ব্যবহারকারীদের অনুরোধ ফরোয়ার্ড করুন
  • হ্যান্ডলারটি ব্যবহারকারীর অনুরোধটি প্রক্রিয়া করুন এবং অপারেশনের ফলাফলটি ফিরিয়ে দিন
  • ব্যবহারকারীর কাছে প্রতিক্রিয়া প্রেরণ করুন

পাঠকের কাছে দ্রুত নোট: গুগল অ্যাপস স্ক্রিপ্ট উন্নয়নের জন্য ES6 + সমর্থন করে না।

অনুরোধের অংশটি পুনরুদ্ধার করার জন্য, আমরা নীচে doPost () ফাংশনে প্রদত্ত ডেটাটি প্রবেশ করলাম:

আপনি অনুরোধের বডিটি পেয়ে এবং এটিকে একটি সাধারণ অবজেক্টে রূপান্তরিত করার পরে, আমাদের রেকর্ড অবজেক্টটি রূপ নেয়:

তারপরে আমরা পরবর্তী পদক্ষেপে এগিয়ে যেতে পারি, যা ব্যবহারকারীর দ্বারা সরবরাহিত ক্রিয়া এবং যুক্তিগুলি বের করার জন্য রেকর্ড অবজেক্টের পাঠ্য সম্পত্তিটি পার্স করা। এটি করার জন্য, আমরা প্রথমে একটি ক্রিয়া অবজেক্ট তৈরি করি যা প্রতিটি ক্রিয়াটিকে কী হিসাবে অন্তর্ভুক্ত করে। প্রতিটি ক্রিয়া কী এর মানতে এই ক্রিয়া সম্পর্কিত সমস্ত তথ্য থাকে। এই নকশাটি নিশ্চিত করে যে প্রয়োজন হলে আমরা আমাদের অ্যাপ্লিকেশনটিতে আরও ক্রিয়া যুক্ত করতে পারি। ক্রিয়া অবজেক্টটি নিম্নরূপ প্রয়োগ করা হয়েছে:

আমরা প্রতিটি প্রয়োজনীয় সামগ্রীর পাঠ্য সম্পত্তিটি নীচে বিশ্লেষণ করি:

এখন আমরা ব্যবহারকারীর উদ্দেশ্যে করা ক্রিয়া এবং প্রদত্ত ক্রিয়া আর্গুমেন্টগুলি বের করতে পারি, আমরা ডান হ্যান্ডলারটি কল করতে এবং প্রদত্ত ক্রমটিকে হ্যান্ডলারের কার্যক্রমে প্রদত্ত ক্রমটি পাস করতে পারি।

এখন আপনি আমাদের অ্যাকশন হ্যান্ডলারের কঙ্কাল তৈরি করেছেন, এটি বাস্তবায়নের সময় এসেছে। অ্যাকশনটির জন্য আমরা কাজ করছি (চেক) আমাদের করতে হবে:

  • আমরা যে গুগল স্প্রেডশিট নিয়ে কাজ করছি তার একটি উদাহরণ পান
  • ডেটা মানগুলির পরিসীমা পায়
  • ব্যবহারকারীর ইমেলের জন্য ফলকে ইমেল কলাম অনুসন্ধান করুন
  • যদি পাওয়া যায় তবে ইমেলের জন্য উপযুক্ত নম্বরটি ফিরিয়ে দিন। অন্যথায়, এটি শূন্য ফিরে

এটি অর্জনের জন্য আমরা ব্যবহার করতে পারি কোডের স্নিপেট এখানে:

এখন আমরা তালিকায় ব্যবহারকারীর সংখ্যা যুক্ত করেছি, শেষ পর্যন্ত আমরা আমাদের প্রত্যাশিত ব্যবহারকারীর কাছে প্রতিক্রিয়া পাঠাতে পারি send মজার অংশটি হ'ল উপরের যে সমস্ত কোড আপনি দেখতে পান সেগুলি 2 সেকেন্ডেরও কম সময়ে চলেছিল। প্রতিক্রিয়া প্রেরণের কাজটিকে আমরা দুটি ভাগে ভাগ করতে পারি যা বার্তাটি তৈরি করে এবং প্রেরণ করে। উদ্বেগের এই পৃথকীকরণের একটি বাস্তবায়ন এখানে দেওয়া হল:

সরবরাহ করুন

উফফফফ! আমাদের সমাধান প্রস্তুত। এটা বাস্তবায়নের সময়। স্ক্রিপ্টটি সংরক্ষণ করুন এবং টুলবারে ওয়েব অ্যাপ্লিকেশন হিসাবে প্রকাশ করুন> ভাগ করুন ক্লিক করুন। একটি মডেল প্রদর্শিত হয়। মডেলগুলিতে ক্ষেত্রগুলি নিম্নরূপে পূরণ করুন:

পোস্ট ক্লিক করুন এবং আপনাকে বার্তাগুলি পোস্ট করার জন্য একটি URL শেষ পয়েন্ট দেওয়া হবে। আপনার স্ল্যাক অ্যাপ্লিকেশনটির কনফিগারেশনের "অনুরোধ URL" ফিল্ডে এই URL টি শেষ পয়েন্টটি অনুলিপি করুন এবং আটকান। কর্মক্ষেত্রের যে কোনও জায়গা থেকে টাইপ / তালিকাবোট টাইপ করে এবং সিস্টেমটি প্রাণবন্ত হয়ে দেখে আপনার অ্যাপটিকে ট্রিগার করুন। এটি আমার কাছে এটির মতো দেখাচ্ছে:

শুধু গুগল শিট ব্যবহার করে স্ল্যাক বট তৈরি করতে আপনাকে যা করতে হবে তা হ'ল। আপনার যদি এই নিবন্ধে বৈশিষ্ট্যযুক্ত কোড স্নিপেটের সম্পূর্ণ সংস্করণ প্রয়োজন হয় তবে এই গিথুব রেপোটি দেখুন।

এত দীর্ঘ অংশটি পড়তে সময় দেওয়ার জন্য আপনাকে ধন্যবাদ। আপনি যদি এই নিবন্ধটির বিষয়বস্তু পছন্দ করেন এবং আপনি আরও ভাল মানুষ এই জাতীয় ভাল জিনিস আবিষ্কার করতে চান তবে আপনি নিবন্ধটি 50 বার পর্যন্ত সংক্ষিপ্ত করতে পারেন। এটি অনেক দীর্ঘ হবে! আপনার যদি কোনও প্রশ্ন থাকে তবে আপনি টুইটারে @olusola_dev এ আমার কাছে পৌঁছাতে পারেন।

আপনার কি শীর্ষ বিকাশকারীদের ভাড়া নেওয়া দরকার? স্কেলিংয়ে সহায়তা করতে অ্যান্ডেলার সাথে কথা বলুন। আপনি কি একজন বিকাশকারী হিসাবে আপনার ক্যারিয়ারকে ত্বরান্বিত করতে চান? Andela বর্তমানে সিনিয়র বিকাশকারীদের নিযুক্ত করা হয়। এখন আবেদন কর.