পাইথন ব্যবহার করে স্ল্যাকের জন্য কীভাবে একটি টাস্ক নোটিফিকেশন বট তৈরি করবেন (পর্ব 1)

ভিক ইয়াঙ্কফের নিবন্ধ

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

স্ল্যাক বট কোনও গুগল স্প্রেডশিট থেকে ডেটা টেনে নেয়, এটিকে বিশ্লেষণ করে এবং নির্দিষ্ট সময়ে চেক ইন বা জমা দেওয়ার জন্য গ্রুপের টাস্ক চ্যানেলকে অবহিত করে। আমি একটি বৈশিষ্ট্য যুক্ত করেছি যা দলের সদস্যকে স্ল্যাক স্ল্যাশ কমান্ডগুলি (উদাঃ / রাঙ্গি শো-টাস্ক) আজ একটি নির্দিষ্ট দিন বা তাদের ব্যক্তিগত কাজ (গুলি) এর জন্য টাস্কের জন্য অনুরোধ করতে সহায়তা করে।

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

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

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

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

অংশ নিতে, নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:

সরঞ্জাম / প্যাকেজ

  • একটি স্ল্যাক দল (উন্নয়ন / পরীক্ষার জন্য)
  • স্ল্যাক এপিআই কনসোল (এখানে স্ল্যাক এপিআই ডকুমেন্টেশনের মাধ্যমে পড়ার জন্য এটি দুর্দান্ত সহায়তা করবে))
  • পাইথন ৩.x (পাইথন ২.x এ এটি সঠিকভাবে কাজ করতে পারে না)
  • ভার্চুয়ালইনভ (গ্লোবাল প্যাকেজগুলির সাথে দ্বন্দ্ব ছাড়াই কোনও প্রকল্পের জন্য পাইথন প্যাকেজগুলি স্থানীয়ভাবে ইনস্টল করার জন্য)
  • ফ্লাস্ক (সরঞ্জামগুলির উপর ভিত্তি করে পাইথনের মাইক্রো ফ্রেমওয়ার্ক, জিনজা 2 এবং ভাল উদ্দেশ্য)
  • একটি পাঠ্য সম্পাদক (আমি ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করেছি তবে আমি আমার পাইচার্মকে ভালবাসতে শুরু করি)
  • হিরোকু (আমাদের আবেদন পরীক্ষা করার জন্য)
  • গুগল স্প্রেডশিট (আপনি এই স্প্রেডশিটের একটি অনুলিপি তৈরি করতে পারেন)
  • গুগল এপিআই কনসোল (একটি Google পরিষেবা অ্যাকাউন্ট এবং OAuth2 শংসাপত্র পেতে)

প্রতিযোগিতা

  • বেসিক সি এল আই কমান্ডগুলির সাথে পরিচিতি
  • পাইথনের প্রাথমিক জ্ঞান (প্যাকেজ ইনস্টলেশন ও বেসিক সিনট্যাক্স)

আমাদের অ্যাপ সংগ্রহস্থল স্থাপন করা হচ্ছে।

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

আমাদের ফাইল কাঠামো

আমরা আমাদের প্রকল্প ফোল্ডারে চারটি ফোল্ডার তৈরি করতে যা যা আমরা আগে তৈরি করেছি created এর মধ্যে অ্যাপ্লিকেশন, কনফিগারেশন, স্ট্যাটিক, টেম্পলেট অন্তর্ভুক্ত রয়েছে। আসুন আমাদের অ্যাপ ফোল্ডারে একটি ইউটিলেস ফোল্ডার তৈরি করি। আমাদের অ্যাপ্লিকেশন ইউটিলিটিগুলির সমস্ত এখানে সঞ্চয় করা হয়।

। Roপ্রজেক্ট │ │ অ্যাপ্লিকেশন │ ├── ├── __init__.py │ │ ├── steps.py │ tens tens বাসন │ │ ├── gappshelper.py py │ └── slackhelper.py │ │ ক্লায়েন্ট_সেক্রেট.জসন │ │ কনফিগার করুন │ │ ├── __init__.py │ │ └── env.py │ ti ranti.py │ ├── Requirements.txt │ ic স্থির ├── ├── টেম্পলেটগুলি │ │ প্রোটোকল ├── AD README.md │ └── worker.py │ vrenv

একটি পিস্টন অ্যাপ তৈরি করুন

পরবর্তী পদক্ষেপটি হল আমাদের প্রকল্পের জন্য একটি সাধারণ পিস্টন অ্যাপ্লিকেশন তৈরি করা যাতে আমরা এটি হোস্ট করতে পারি। প্রজেক্ট ফোল্ডারের মূলটিতে ranti.py নামে একটি ফাইল তৈরি করুন। এটি হবে আমাদের অ্যাপ্লিকেশন এন্ট্রি পয়েন্ট। নিম্নলিখিত কোডটি আটকান:

আপনি একটি সম্পূর্ণ পিস্টন অ্যাপ্লিকেশন তৈরি করেছেন। আমাদের অ্যাপ্লিকেশনটি 5000 পোর্টে ডিফল্টরূপে সরবরাহ করা হয়। আমাদের অ্যাপ্লিকেশনটি দেখতে ফ্ল্যাশ রান দিয়ে অ্যাপ্লিকেশনটি শুরু করুন এবং তারপরে আপনার ব্রাউজারে http: // লোকালহোস্ট: 5000 এ যান এবং আপনার "হ্যালো ওয়ার্ল্ড" দেখতে পাওয়া উচিত।

অ্যাপ্লিকেশন কনফিগারেশন

আসুন বিভিন্ন পরিবেশের জন্য আমাদের অ্যাপ্লিকেশন কনফিগারেশন সেট আপ করুন। কনফিগার ফোল্ডারে, _init_.py এবং env.py নামে দুটি ফাইল তৈরি করুন

আমরা _init_.py এ আমাদের কনফিগারেশনটি সূচনা করব। নিম্নলিখিত স্নিপেটটি __init__.py ফাইলে অনুলিপি করুন এবং আটকান।

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

নিম্নলিখিত কোডের স্নিপেটটি env.py. এ অনুলিপি করুন এবং আটকান

স্ল্যাক "বট ব্যবহারকারী" সেটআপ এবং এপিআই (আথ কী) কনফিগারেশন

আসুন একটি নতুন স্ল্যাক অ্যাপ তৈরি করুন যাতে আমরা একটি স্ল্যাক এপিআই টোকেন পেতে পারি এবং আমাদের কাজ শেষ হয়ে গেলে আমাদের বট পরীক্ষা করতে পারে। অ্যাপ্লিকেশনটিকে আপনি চান এমন একটি নাম দিন এবং আপনার পছন্দসই উন্নয়ন কর্মক্ষেত্রটি নির্বাচন করুন - এমন একটি দল যা আপনি ইতিমধ্যে একটি অংশ এবং প্রশাসকের অ্যাক্সেস পেয়েছেন। আমি আমার জন্য "রন্টি বট" ব্যবহার করব এবং প্রোটন স্ল্যাক দলের কর্মক্ষেত্রটি নির্বাচন করব।

স্ল্যাক অ্যাপ তৈরির ফর্ম। নোট: পরবর্তী পদক্ষেপের জন্য স্ল্যাক এপিআই ড্যাশবোর্ডটি খোলা রাখুন।

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

বট ব্যবহারকারী সেটআপ পৃষ্ঠা।

এখন "সেটিংস" বিভাগে "ইনস্টল অ্যাপ" মেনুটি নির্বাচন করুন। আমাদের টিম ডেভলপমেন্ট ওয়ার্কস্পেসে অ্যাপটি ইনস্টল করতে বোতামটি ক্লিক করুন। অ্যাপ্লিকেশন ইনস্টল হয়ে গেলে আপনার নীচের স্ক্রিনটি দেখতে হবে:

ইনস্টল করা অ্যাপ্লিকেশন সেটিংস পৃষ্ঠা - প্রমাণীকরণের বিশদগুলি এখানে পাওয়া যাবে।

"OAuth অ্যাক্সেস টোকন" এবং "বট ব্যবহারকারী ওআউথ অ্যাক্সেস টোকন" উভয়ই অনুলিপি করুন এবং সংরক্ষণ করুন। আমরা এগুলি টিউটোরিয়ালে পরে ব্যবহার করব।

গুগল শিট এপিআই (অথ কী) সেটআপ এবং কনফিগারেশন

আসুন আমরা সকলেই এই শীটটিকে নকল করি যাতে আমরা এই টিউটোরিয়ালটি দিয়ে এগিয়ে যেতে পারি। গুগল এপিআই কনসোলের একটি পরিষেবা অ্যাকাউন্ট এবং OAuth2 শংসাপত্রগুলির জন্য আপনার গুগল শিটটি প্রোগ্রামগতভাবে পড়তে হবে।

আমরা আমাদের পরিষেবা অ্যাকাউন্ট তৈরি করব এবং নিম্নলিখিতগুলি করে প্রয়োজনীয় শংসাপত্রগুলি পাব:

  1. গুগল এপিআই কনসোলটি দেখুন।
  2. একটি নতুন প্রকল্প তৈরি করুন। এর নাম দিন "প্রোটন গ্রুপ টাস্ক"
  3. অ্যাক্টিভেট API এ ক্লিক করুন। গুগল ড্রাইভ এপিআই সন্ধান করুন এবং সক্ষম করুন।
  4. অ্যাপ্লিকেশন ডেটা অ্যাক্সেস করতে একটি ওয়েব সার্ভারের শংসাপত্র তৈরি করুন।
  5. পরিষেবা অ্যাকাউন্টটির নাম দিন এবং এটিকে "সম্পাদক" প্রকল্পের ভূমিকাটি প্রদান করুন।
  6. আপনার সিস্টেমে JSON ফাইলটি ডাউনলোড করুন।
  7. আপনার প্রকল্প ডিরেক্টরিতে ডাউনলোড করা জেএসওএন ফাইলটি অনুলিপি করুন এবং নাম ক্লায়েন্ট_সেক্রেট.জসন রাখুন
পরিষেবা অ্যাকাউন্ট তৈরি। জিআইএফ-এ পদক্ষেপ।

তারপরে ক্লায়েন্ট_সেটর.জসন ফাইলে ক্লায়েন্ট_ইমেলের স্প্রেডশিটটি ভাগ করুন।

ক্লায়েন্ট_সেটর.জসন ফাইলে ক্লায়েন্ট_মিলের জন্য কার্যপত্রক নথিটি ভাগ করুন। জিআইএফ-এ পদক্ষেপ।

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

আমরা আমাদের এপিআইগুলির সাথে যোগাযোগের জন্য নিম্নলিখিত পাইথন প্যাকেজগুলি ব্যবহার করতে যাচ্ছি,

  1. স্ল্যাকক্লিয়েন্ট - স্ল্যাক এপিআইয়ের সাথে যোগাযোগ করার জন্য
  2. gspread - গুগল স্প্রেডশিট এপিআই এর সাথে ইন্টারেক্ট করার জন্য
  3. oauth2client - oAuth2.0 ব্যবহার করে Google ড্রাইভ এপিআই অনুমোদিত করতে ize

এটি আরও কিছুটা প্রোগ্রাম করার সময় এসেছে ... আসুন আমাদের নৈমিত্তিক ক্লায়েন্ট সহায়ক - স্ল্যাকহেল্পার.পি এবং গুগল শিটস সহায়ক - গ্যাপসেল্পার.পি। এই ফাইলগুলিতে আমাদের API এবং আমাদের বট ক্রিয়া দ্বারা ব্যবহৃত পদ্ধতিগুলির সাথে সংযোগ রয়েছে।

আমাদের অ্যাপ / ইউটিউস ফোল্ডারে একটি গ্যাপসেল্পার.পি ফাইল তৈরি করুন। এই ফাইলটিতে নিম্নলিখিত স্নিপেটটি অনুলিপি করুন।

ওএসআউট আমদানি পথ থেকে আমদানি করুন জিএসপিআডিকে oauth2client.service_account থেকে কনফিগারেশন থেকে আমদানি করুন সার্ভিস অ্যাকাউন্টসেন্টস ক্রেনডেনিয়ালস আমদানি করুন

এখন আমরা এই ফাইলটির জন্য প্রয়োজনীয় সমস্ত প্যাকেজ এবং নির্ভরতা আমদানি করেছি, আমরা আমাদের গ্যাপস হেল্পার ক্লাস তৈরি করতে পারি যা আমাদের গুগল শিটের সাথে যোগাযোগের জন্য প্রয়োজনীয় বৈশিষ্ট্য এবং পদ্ধতি ধারণ করে contain

উপরের কোডে, আমরা যখনই আমাদের প্রয়োজন তখনই গ্যাপসহেলপারক্লাসের উদাহরণ শুরু করার জন্য একটি __init__ পদ্ধতি তৈরি করেছি, গুগল ড্রাইভ এপিআই ডকুমেন্টেশনে বর্ণিত শ্রেণীর দৃষ্টান্তের জন্য প্রয়োজনীয় বৈশিষ্ট্য রয়েছে। আমরা ওপেন_শীট নামে একটি পদ্ধতিও তৈরি করেছি যা একটি শীট খুলবে এবং সেই নির্দিষ্ট শীটে সমস্ত রেকর্ড ফিরিয়ে দেবে। এটি আমাদের ডাটাবেস গুগল স্প্রেডশিটের জন্য পুনরুদ্ধার অনুরোধ হিসাবে কাজ করে।

আমাদের এখন আমাদের গুগল শীটে অ্যাক্সেস রয়েছে এবং এটি থেকে ডেটা টানতে পারি। আমরা কীভাবে আমাদের স্ল্যাশ কমান্ডের সাহায্যে এটি জিজ্ঞাসা করেছি এমন ব্যবহারকারীদের এই ডেটা দিতে যাব? এ সম্পর্কে আর চিন্তা করবেন না, আমরা অ্যাপ / ইউপস ফোল্ডারে একটি স্ল্যাকহেল্পার.পি ফাইল তৈরি করতে যাচ্ছি যাতে স্ল্যাকের সাথে যোগাযোগের জন্য প্রয়োজনীয় সমস্ত বৈশিষ্ট্য এবং পদ্ধতি থাকবে। ফাইলে আমাদের স্ল্যাকক্লিয়েন নামে একটি প্যাকেজ দরকার যা স্ল্যাক এপিআইয়ের জন্য পাইথন র‍্যাপার এবং আমাদের কনফিগারেশন মডিউলে আমাদের get_env পদ্ধতিটি দরকার।

স্ল্যাকক্লিয়েন্ট থেকে আমদানি করুন কনফিগারেশন get_env থেকে স্ল্যাকক্লিয়েন্ট import

এখন আসুন আমাদের স্ল্যাকহেল্পার ক্লাস তৈরি করে আমাদের স্ল্যাকহেল্পার পদ্ধতি তৈরি করা শুরু করুন।

ক্লাস স্ল্যাকহেল্পার: ডিএফ __init __ (স্ব): স্ব.স্ল্যাক_ টোকেন = get_env ('স্ল্যাক্ল্যাসক্রেন') স্ব.স্ল্যাক_ক্লিয়েন্ট = স্ল্যাকক্লিয়েন্ট (স্ব.স্ল্যাক_ টোকেন) স্ব.স্ল্যাক_চ্যানেল = get_env ('স্ল্যাক_চ্যানেল')

আমরা আমাদের কনস্ট্রাক্টর তৈরি করি এবং আমাদের পরিবেশের ভেরিয়েবলগুলি থেকে স্ল্যাক_ টোকেন, স্ল্যাক_চ্যানেল এবং স্ল্যাক_ক্লিয়েন্টের মতো বৈশিষ্ট্য সংজ্ঞায়িত করি - স্ল্যাকক্লিয়েন্টের একটি উদাহরণ।

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

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

আসুন আমাদের অ্যাপ এন্ট্রি পয়েন্ট ranti.py এ একটি ছোট পরিবর্তন করি। আমরা আমাদের অ্যাপস ফোল্ডারে এখানে কয়েকটি বৈশিষ্ট্য গোষ্ঠীবদ্ধ করব।

উপরের কোড স্নিপেটের সাথে ranti.py এর সামগ্রীগুলি প্রতিস্থাপন করুন। আমরা "মেইলটিএপ" ফোল্ডারটি "__init__.py" ফোল্ডার থেকে আমাদের পদ্ধতিটি তৈরি_এপ আমদানি করি এবং তারপরে "অ্যাপ_এনভি" পাস করি। তারপরে আমরা আমাদের বোতল সার্ভার শুরু করার জন্য রান অ্যাপটি আমাদের অ্যাপে কল করি method

আমাদের অ্যাপ ফোল্ডারে একটি __init__। পাই ফাইল তৈরি করি এখানে আমরা আমাদের অ্যাপ্লিকেশন তৈরি করি এবং অ্যাপটির জন্য আমাদের মূল প্রবেশপথটিও লিখি। নীচে কোড স্নিপেট কপি এবং পেস্ট করুন।

হুরয়, এখন আমরা আমাদের সার্ভারটি শুরু করতে পারি এবং ব্রাউজারে ইউআরএল দেখার সময় হ্যালো ওয়ার্ল্ডটি দেখা উচিত।

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

আপনি কি কিছু জানতে চান? আপনি টুইটারে আমার কাছে পৌঁছতে পারেন @ জ্যাটোরিয়াজ। আমি গাতহাবের সাথে জাট্টোবদুল নামটি ব্যবহার করে আছি।

আপনি কি এই পোস্টে কিছু ভুল দেখছেন? এই টিউটোরিয়ালটির উত্সটি গিটহাব এ প্রবেশ করুন এবং একটি টান অনুরোধ জমা দিন।

এই টিউটোরিয়ালের অংশ 2 এখানে পাওয়া যাবে

আপনার কি শীর্ষ বিকাশকারীদের ভাড়া নেওয়া দরকার? এটির সাথে আপনাকে সহায়তা করতে আন্ডেলার সাথে কথা বলুন।