Google ক্লাউড ফাংশনগুলির সাথে আপনার Gmail ইনবক্সকে শক্তিশালী করুন৷

1. ভূমিকা

কোটি কোটি ব্যবসা এবং ব্যক্তি ডেটা যোগাযোগ এবং প্রক্রিয়া করার জন্য Gmail এবং অন্যান্য G Suite পরিষেবাগুলি ব্যবহার করে৷ Google আপনাকে এই পরিষেবাগুলিতে প্রোগ্রাম্যাটিকভাবে তথ্য অ্যাক্সেস করতে সাহায্য করার জন্য G Suite API অফার করে এবং আপনি সহজেই আপনার দৈনন্দিন কর্মপ্রবাহ স্বয়ংক্রিয় করতে API ব্যবহার করতে পারেন। এই ল্যাবে, আপনি একটি শক্তিশালী Gmail এক্সটেনশন তৈরি করবেন যা স্বয়ংক্রিয়ভাবে আগত বার্তাগুলিতে ইমেলগুলিকে শ্রেণীবদ্ধ করে এবং সেই বিভাগগুলিকে একটি Google শিটে সংরক্ষণ করে৷ এই এক্সটেনশনটি G Suite-এর RESTful API, Google ক্লাউড ফাংশন এবং অন্যান্য Google ক্লাউড প্ল্যাটফর্ম পরিষেবাগুলি ব্যবহার করবে৷

যা আপনি নির্মাণ করবেন

এই ল্যাবে, আপনি G Suite API এবং অন্যান্য Google ক্লাউড প্ল্যাটফর্ম পরিষেবাগুলির সাথে সংযুক্ত কয়েকটি ক্লাউড ফাংশন তৈরি এবং স্থাপন করবেন। এই ফাংশন হবে:

  • আপনার Gmail এবং Google পত্রক ডেটাতে নিরাপদ অ্যাক্সেস অনুমোদন করুন৷
  • যেকোনো ইনকামিং মেইলের সাথে সংযুক্ত ছবিগুলো বের করুন
  • ক্লাউড ভিশন API ব্যবহার করে সেই ছবিগুলিকে শ্রেণিবদ্ধ করুন৷
  • এই বিভাগগুলি, প্রেরকের ঠিকানা এবং একটি Google পত্রকের সাথে সংযুক্তির নাম লিখুন৷

যা শিখবেন

  • G Suite RESTful API-এর বেসিক
  • Google ক্লাউড ফাংশন এবং অন্যান্য Google ক্লাউড প্ল্যাটফর্ম পরিষেবাগুলির মৌলিক বিষয়গুলি৷
  • গুগল ক্লাউড ফাংশন ব্যবহার করে প্রোগ্রাম্যাটিকভাবে জিমেইল কীভাবে অ্যাক্সেস করবেন

আপনি কি প্রয়োজন হবে

  • Gmail এবং Google পত্রক অ্যাক্সেস সহ একটি Google অ্যাকাউন্ট। আপনার যদি একটি না থাকে তবে এখানে একটি তৈরি করুন
  • Javascript/Node.js এর প্রাথমিক জ্ঞান।

2. প্রথম জিনিস প্রথম

APIs সক্রিয় করুন

এই ল্যাবে আপনি নিম্নলিখিত Google পণ্য/পরিষেবাগুলি ব্যবহার করবেন:

  • গুগল ক্লাউড ফাংশন
  • Google Cloud Pub/Sub
  • গুগল ক্লাউড ভিশন API
  • গুগল ক্লাউড ডেটাস্টোর
  • জিমেইল এপিআই
  • Google Sheets API

গুগল ক্লাউড ফাংশন

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

Google ক্লাউড ফাংশন সক্ষম করতে, বাম নেভিগেশন সাইডবার খুলতে আপনার স্ক্রিনের উপরের বাম দিকে হ্যামবার্গার মেনুতে ক্লিক করুন:

f457988e33594bb6.png

নেভিগেশন মেনুতে ক্লাউড ফাংশন খুঁজুন এবং এটিতে ক্লিক করুন। আপনার প্রকল্পে Google ক্লাউড ফাংশন সক্ষম করতে API সক্ষম করুন ক্লিক করুন৷

Google Cloud Pub/Sub

Google ক্লাউড পাব/সাব ডেটা স্ট্রিমিং এবং ইভেন্ট ডেলিভারির জন্য একটি সহজ এবং মাপযোগ্য ভিত্তি। এই ল্যাবে এটি জিমেইল এবং গুগল ক্লাউড ফাংশনের মধ্যে কুরিয়ার হিসেবে কাজ করে।

Google Cloud Pub/Sub সক্ষম করতে, বাম নেভিগেশন সাইডবার খুলুন, Pub/Sub খুঁজুন এবং এটিতে ক্লিক করুন। আপনার প্রকল্পে Google Cloud Pub/Sub সক্ষম করতে API সক্ষম করুন ক্লিক করুন৷

গুগল ক্লাউড ডেটাস্টোর

Google ক্লাউড ডেটাস্টোর হল একটি সার্ভারহীন ডাটাবেস যা পরিমাপযোগ্য এবং বিতরণ করা হয়।

Google ক্লাউড ডেটাস্টোর সক্ষম করতে, বাম নেভিগেশন সাইডবারে, ডেটাস্টোর খুঁজুন এবং এটিতে ক্লিক করুন৷ নতুন পৃষ্ঠায় ডেটাস্টোর মোড নির্বাচন করুন ক্লিক করুন।

98012c91fd4080d4.png

আপনি এই ল্যাবের জন্য যেকোনো ডাটাবেস অবস্থান ব্যবহার করতে পারেন। Google ক্লাউড ডেটাস্টোর সক্ষম করতে ডেটাবেস তৈরি করুন ক্লিক করুন; এটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগতে পারে।

গুগল ক্লাউড ভিশন

Google ক্লাউড ভিশন API হল একটি শক্তিশালী মেশিন লার্নিং পরিষেবা যা আপনার ছবিগুলি থেকে অন্তর্দৃষ্টি পেতে প্রাক-প্রশিক্ষিত মডেলগুলি ব্যবহার করে৷

Google ক্লাউড ভিশন API কীভাবে সক্ষম করবেন সে সম্পর্কে তথ্যের জন্য নীচের নির্দেশাবলী দেখুন৷

Gmail API, Google Sheets API, এবং Google Cloud Vision API সক্ষম করা হচ্ছে

আবার, বাম নেভিগেশন সাইডবার খুলুন, এবং API এবং পরিষেবাগুলি খুঁজুন। লাইব্রেরিতে ক্লিক করুন। APIs এবং পরিষেবাগুলির জন্য অনুসন্ধান ক্ষেত্রে, Gmail এ টাইপ করুন। অনুসন্ধান ফলাফলে, Gmail API নির্বাচন করুন এবং সক্ষম করুন ক্লিক করুন।

API লাইব্রেরি পৃষ্ঠায় ফিরে যান। Google Sheets API অনুসন্ধান করুন এবং এটি সক্ষম করুন।

প্রক্রিয়াটি পুনরাবৃত্তি করুন। ক্লাউড ভিশন API অনুসন্ধান করুন এবং এটি সক্ষম করুন।

গুগল ক্লাউড শেল খুলুন

এই ল্যাবে, আপনি বেশিরভাগ অপারেশন করতে Google ক্লাউড শেল ব্যবহার করবেন। ক্লাউড শেল আপনাকে সরাসরি আপনার ব্রাউজার থেকে আপনার Google ক্লাউড প্ল্যাটফর্ম সংস্থানগুলিতে কমান্ড-লাইন অ্যাক্সেস প্রদান করে, আপনাকে স্থানীয় মেশিন ব্যবহার না করেই সেগুলি পরিচালনা করার অনুমতি দেয়।

Google ক্লাউড শেল খুলতে, উপরের নীল অনুভূমিক বারে সক্রিয় ক্লাউড শেল বোতামে ক্লিক করুন:

fd5c2925ca9cdfdd.png

একটি নতুন প্যানেল পর্দার নীচে প্রদর্শিত হবে:

34f498402e910802.png

ক্লাউড শেল কোড এডিটর শুরু করতে লঞ্চ কোড এডিটর বোতামে ক্লিক করুন:

10f8631ef48bed22.png

ক্লাউড শেল কোড এডিটর একটি নতুন উইন্ডোতে খুলবে।

কোডটি ডাউনলোড করুন

প্রকল্পটি ক্লোন করতে আপনার ক্লাউড শেলে নীচের কমান্ডটি চালান:

git clone https://github.com/googlecodelabs/gcf-gmail-codelab.git

cd gcf-gmail-codelab

আপনি একটি নতুন ফোল্ডার দেখতে পাবেন, gcf-gmail-codelab , ক্লাউড শেল কোড এডিটরে প্রদর্শিত হচ্ছে।

3. আর্কিটেকচারাল ওভারভিউ

নীচে এই ল্যাবের কার্যপ্রবাহ রয়েছে:

79c5d3e43f674b33.png

  1. ব্যবহারকারী জিমেইল পুশ বিজ্ঞপ্তি সেট আপ করে: ইনবক্সে যখনই একটি নতুন বার্তা আসবে, Gmail ক্লাউড পাব/সাব-এ একটি বিজ্ঞপ্তি পাঠাবে৷
  2. ক্লাউড পাব/সাব Google ক্লাউড ফাংশনে নতুন বার্তা বিজ্ঞপ্তি প্রদান করে।
  3. নতুন বার্তা বিজ্ঞপ্তি আসার পরে, একটি ক্লাউড ফাংশন ইনস্ট্যান্স Gmail এর সাথে সংযোগ করে এবং নতুন বার্তাটি পুনরুদ্ধার করে।
  4. যদি মেলটিতে একটি সংযুক্তি হিসাবে একটি চিত্র থাকে, তাহলে ক্লাউড ফাংশন উদাহরণটি সংযুক্তি বিশ্লেষণ করতে ক্লাউড ভিশন API-কে কল করে৷
  5. ক্লাউড ফাংশন ইনস্ট্যান্স আপনার পছন্দের একটি Google পত্রক আপডেট করে, কে বার্তা পাঠাবে এবং কোথায় সংযুক্তি ডাউনলোড করতে হবে তা উল্লেখ করে।

4. Gmail-এ অ্যাক্সেস অনুমোদন করুন

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

একটি OAuth ক্লায়েন্ট নিবন্ধন করুন

Google ক্লাউড কনসোলের বাম নেভিগেশন মেনুতে, APIs এবং পরিষেবাগুলি খুঁজুন। OAuth সম্মতি স্ক্রীনে ক্লিক করুন।

91b2a3bac30bb2c5.png

অ্যাপ্লিকেশন নামের ক্ষেত্রে একটি নাম টাইপ করুন, যেমন GCF + Gmail Codelab । অন্যান্য সেটিংসকে স্পর্শ না করে রাখুন, পৃষ্ঠাটি নীচে স্ক্রোল করুন এবং সংরক্ষণ করুন ক্লিক করুন৷

একটি সংশ্লিষ্ট ক্লায়েন্ট আইডি তৈরি করুন

শংসাপত্র ট্যাবে স্যুইচ করুন। ক্রিয়েট ক্রেডেনশিয়াল ক্লিক করুন এবং OAuth ক্লায়েন্ট আইডি বেছে নিন। ওয়েব অ্যাপ্লিকেশনের ধরন বাছুন, এটিকে একটি নাম দিন (আপনি এখানে আবার GCF + Gmail কোডল্যাব ব্যবহার করতে পারেন), এবং তৈরি করুন ক্লিক করুন। আপাতত সীমাবদ্ধতা ক্ষেত্রগুলি খালি রাখুন।

পপ-আপ উইন্ডোতে ক্লায়েন্ট আইডি এবং ক্লায়েন্টের গোপনীয়তাটি লিখুন। এই মানগুলি আবার দেখতে আপনি পৃষ্ঠায় আপনার ক্লায়েন্টের নামে ক্লিক করতে পারেন:

1160d8027ea52d90.png

অনুমোদন প্রক্রিয়া সঞ্চালন

নমুনা কোডে, auth/index.js দুটি ক্লাউড ফাংশন নির্দিষ্ট করে, auth_init এবং auth_callback , যেগুলি ক্লায়েন্ট আইডি এবং আপনার তৈরি করা ক্লায়েন্ট সিক্রেট ব্যবহার করে অনুমোদন প্রক্রিয়া সম্পাদন করতে একসাথে কাজ করে।

কোডটি পরীক্ষা করতে, ক্লাউড শেল কোড এডিটরে auth/index.js খুলুন।

অনুমোদন প্রক্রিয়া দুটি ধরণের টোকেন ফেরত দেয়: অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন

  • অ্যাক্সেস টোকেনগুলি হল স্বল্পস্থায়ী পরিচয়ের প্রমাণ যা তাদের দখলে থাকা যেকোন ব্যক্তিকে আপনার ডেটাতে সুযোগ সুবিধা প্রদান করে; auth_callback তাদের ক্লাউড ডেটাস্টোরে সংরক্ষণ করে।
  • রিফ্রেশ টোকেনগুলি নতুন অ্যাক্সেস টোকেনগুলি পেতে ব্যবহৃত হয় এবং উল্লেখযোগ্যভাবে দীর্ঘস্থায়ী হয়৷

সাধারণত, এগুলি হয় এনক্রিপ্ট করা হয় এবং/অথবা অ্যাক্সেস টোকেনগুলি থেকে আলাদাভাবে সংরক্ষণ করা হয়।

ক্লাউড শেল কোড এডিটরে auth/env_vars.yaml সম্পাদনা করুন। YOUR-GOOGLE-CLIENT-ID এবং YOUR-GOOGLE-CLIENT-SECRET আপনার নিজস্ব মান দিয়ে প্রতিস্থাপন করুন। আরও তথ্যের জন্য পূর্ববর্তী পদক্ষেপ দেখুন। আপাতত YOUR-GOOGLE-CLIENT-CALLBACK-URL এবং YOUR-PUBSUB-TOPIC মান অপরিবর্তিত রাখুন।

a2b4853c39a78bc6.png

auth/env_vars.yaml সম্পাদনা করার পরে, ক্লাউড ফাংশন স্থাপন করতে ক্লাউড শেল-এ নিম্নলিখিত কমান্ডটি চালান:

cd ~
cd gcf-gmail-codelab/auth

# Deploy Cloud Function auth_init
gcloud functions deploy auth_init --runtime=nodejs8 --trigger-http --env-vars-file=env_vars.yaml

# Deploy Cloud Function auth_callback
gcloud functions deploy auth_callback --runtime=nodejs8 --trigger-http --env-vars-file=env_vars.yaml

ক্লাউড ফাংশনগুলি স্থাপন করতে কয়েক মিনিট সময় লাগতে পারে৷ অনুরোধ করা হলে, Cloud SDK-কে বিটা কমান্ড ইনস্টল করার অনুমতি দিন।

এরপরে, Google ক্লাউড কনসোলে যান এবং বাঁদিকের নেভিগেশন মেনুতে ক্লাউড ফাংশনে ক্লিক করুন। ক্লাউড ফাংশনের তালিকায় auth_callback ক্লিক করুন এবং ট্রিগার ট্যাবে স্যুইচ করুন।

cb094bd341f9b299.png

45678a327c80e0f1.png

পৃষ্ঠায় URLটি অনুলিপি করুন। ক্লাউড ফাংশন পৃষ্ঠায় ফিরে যান, ক্লাউড ফাংশনের তালিকায় auth_init ক্লিক করুন। সাধারণ ট্যাবে, সম্পাদনা ক্লিক করুন। এনভায়রনমেন্টাল ভেরিয়েবল, নেটওয়ার্কিং, টাইমআউট এবং আরও অনেক কিছুতে ক্লিক করুন এবং আপনার এইমাত্র কপি করা URL দিয়ে GOOGLE_CALLBACK_URL এর মান প্রতিস্থাপন করুন।

939ca3bd38047282.png

পরিবর্তনগুলি প্রয়োগ করতে ডিপ্লোয় ক্লিক করুন। প্রক্রিয়াটি পুনরাবৃত্তি করুন এবং auth_callback আপডেট করুন।

সবশেষে, বাম নেভিগেশন মেনু খুলুন এবং APIs এবং পরিষেবা > ডোমেন যাচাইকরণে ক্লিক করুন। একটি অনুমোদিত ডোমেন যোগ করতে, ডোমেন যোগ করুন ক্লিক করুন। উদাহরণস্বরূপ, যদি আপনি আগে কপি করা URL এর মত দেখায়

https://us-central1-my-project.cloudfunctions.net/auth_callback

আপনি একটি অনুমোদিত ডোমেন হিসাবে নিম্নলিখিত যোগ করা উচিত:

us-central1-my-project.cloudfunctions.net

নিশ্চিত করতে ডোমেন যোগ করুন টিপুন।

4348748f232ceb87.png

শংসাপত্র পৃষ্ঠায় ফিরে যান। আপনার OAuth ক্লায়েন্টের নামে ক্লিক করুন এবং আপনি একটি অনুমোদিত পুনঃনির্দেশ URI হিসাবে অনুলিপি করা URL যোগ করুন৷ নিশ্চিত করতে এন্টার টিপুন।

URL থেকে /auth_callback অংশটি সরান এবং বাকি অংশটিকে একটি অনুমোদিত জাভাস্ক্রিপ্ট মূল হিসাবে যোগ করুন। উদাহরণস্বরূপ, যদি আপনার URL এর মত দেখায়

https://us-central1-my-project.cloudfunctions.net/auth_callback

আপনি উত্স হিসাবে নিম্নলিখিত যোগ করা উচিত:

https://us-central1-my-project.cloudfunctions.net/

159bad719432582c.png

নিশ্চিত করতে এন্টার টিপুন এবং পরিবর্তনগুলি প্রয়োগ করতে সংরক্ষণ ক্লিক করুন৷

5. Gmail পুশ বিজ্ঞপ্তি সেট আপ করুন৷

অনুমোদন প্রক্রিয়া সফল হলে, পুশ বিজ্ঞপ্তি সেট আপ করতে auth_callback স্বয়ংক্রিয়ভাবে Gmail API-কে কল করবে।

Gmail পুশ বিজ্ঞপ্তিগুলি পেতে, আপনাকে অবশ্যই একটি পাব/সাব বিষয় তৈরি করতে হবে৷ বিষয়ের যেকোনো গ্রাহক জিমেইল থেকে আসার সাথে সাথে স্বয়ংক্রিয়ভাবে ইনকামিং মেসেজ নোটিফিকেশন পাবেন।

একটি পাব/সাব বিষয় তৈরি করতে, Google ক্লাউড কনসোলে যান এবং বাম নেভিগেশন মেনুতে পাব/সাব > বিষয়গুলিতে ক্লিক করুন। টপিক তৈরি করুন ক্লিক করুন। বিষয়ের নাম টাইপ করুন, যেমন gmail-watch , এবং Create এ ক্লিক করুন। অতিরিক্তভাবে, আপনার পাব/সাব বিষয়ে বার্তা পাঠানোর জন্য আপনাকে অবশ্যই জিমেইলের অনুমতি দিতে হবে: আপনি যে বিষয়টি তৈরি করেছেন তার প্রসঙ্গ মেনুতে ক্লিক করুন (তিনটি উল্লম্ব বিন্দু), এবং অনুমতি নির্বাচন করুন; সদস্য যোগ করুন-এ ক্লিক করুন, gmail-api-push@system.gserviceaccount.com নতুন সদস্য হিসাবে নির্দিষ্ট করুন এবং এটিকে Pub/Sub > Pub/Sub Publisher- এর ভূমিকা দিন; অবশেষে, পরিবর্তনগুলি প্রয়োগ করতে সংরক্ষণ করুন ক্লিক করুন।

কোন Pub/Sub বিষয় ব্যবহার করতে হবে তা নির্দিষ্ট করতে Cloud Function auth_callback আপডেট করুন। বাম নেভিগেশন মেনুতে ক্লাউড ফাংশন ক্লিক করুন এবং ক্লাউড ফাংশনগুলির তালিকায় auth_callback নির্বাচন করুন৷ সাধারণ ট্যাবে, সম্পাদনা ক্লিক করুন। আরও ক্লিক করুন, এবং PUBSUB_TOPIC এর মানটি আপনার তৈরি করা Pub/Sub বিষয়ের নামের সাথে প্রতিস্থাপন করুন। পরিবর্তনগুলি প্রয়োগ করতে সংরক্ষণ করুন ক্লিক করুন।

এখন আপনি Gmail পুশ বিজ্ঞপ্তি অনুমোদন এবং সেট আপ করতে প্রস্তুত৷ নতুন পরিবর্তনগুলি চূড়ান্ত না হওয়া পর্যন্ত অপেক্ষা করুন, তারপরে ক্লাউড ফাংশন পৃষ্ঠায় ফিরে যান, ক্লাউড ফাংশনগুলির তালিকায় auth_init নির্বাচন করুন এবং ট্রিগার ট্যাবে স্যুইচ করুন৷ URL-এ ক্লিক করুন, এবং আপনাকে Google এর সাথে সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশিত করা হবে:

348ab0a7e0c9cd03.png

আপনার নিজের একটি Gmail অ্যাকাউন্ট দিয়ে সাইন ইন করুন৷ অ্যাকাউন্টের ইনবক্সে আসা যে কোনো নতুন বার্তা একটি পুশ বিজ্ঞপ্তি ট্রিগার করবে। সাইন ইন করার পরে, আপনি নীচের পৃষ্ঠাটি দেখতে পাবেন:

cfdad62fd02de004.png

অ্যাক্সেস অনুমোদন করতে অনুমতি দিন ক্লিক করুন। auth_callback অনুমোদন প্রক্রিয়া সম্পূর্ণ করবে, অ্যাক্সেস টোকেন সংরক্ষণ করবে এবং আপনার জন্য Gmail পুশ বিজ্ঞপ্তি সেট আপ করবে। এই প্রক্রিয়াটি সম্পূর্ণ হলে আপনার ব্রাউজারে Successfully set up Gmail push notifications এই বার্তাটি দেখতে হবে৷

এই কোডল্যাব আপনার জন্য অনুমোদন কার্যপ্রবাহ স্বয়ংক্রিয় করতে @google-cloud/express-oauth2-handlers প্যাকেজ ব্যবহার করে। আরও তথ্যের জন্য, GitHub-এ এর সংগ্রহস্থল দেখুন।

6. ইনকামিং মেসেজ প্রসেস করুন

যেমনটি আমরা আগে উল্লেখ করেছি, আপনার তৈরি করা Pub/Sub বিষয়ের যেকোনো গ্রাহক আপনার ইনবক্সে নতুন বার্তা এলে বিজ্ঞপ্তি পাবেন। pubsub/index.js একটি ক্লাউড ফাংশন, watchGmailMessages নির্দিষ্ট করে, যা একবার বিষয়ের গ্রাহক হিসাবে নিযুক্ত করা হলে, নতুন বার্তাগুলি পড়বে, সংযুক্ত চিত্রগুলিকে শ্রেণীবদ্ধ করবে এবং সেই বিভাগগুলিকে একটি Google শীটে রপ্তানি করবে৷

কোডটি পরীক্ষা করতে, ক্লাউড শেল কোড এডিটরে pubsub/index.js খুলুন।

বার্তা পুনরুদ্ধার করা হচ্ছে

একটি Gmail পুশ বিজ্ঞপ্তিতে বিজ্ঞপ্তিটির সাথে সম্পর্কিত ইমেল ঠিকানা এবং একটি ইতিহাস আইডি অন্তর্ভুক্ত থাকে। সরলতার কারণে, এই কোডল্যাবে আপনি একটি পুশ নোটিফিকেশন এলে সর্বশেষ বার্তার জন্য Gmail API-কে জিজ্ঞাসা করবেন; একটি ভাল ফলাফলের জন্য, পরিবর্তে বার্তাগুলি দেখতে ইতিহাস আইডি ব্যবহার করুন

// Look up the most recent message.
const listMessagesRes = await gmail.users.messages.list({
  userId: email,
  maxResults: 1
});
const messageId = listMessagesRes.messages[0].id;

// Get the message using the message ID.
const message = await gmail.users.messages.get({
  userId: email,
  id: messageId
});

return message;

ছবি সংযুক্তি বিশ্লেষণ

যদি বার্তাটিতে একটি ছবি সংযুক্তি থাকে, watchGmailMessages ক্লাউড ভিশন API-কে ইমেজ টীকা করতে কল করবে। এই কোডল্যাবে, আপনি ক্লাউড ভিশন এপিআইকে ইমেজ শ্রেণীবদ্ধ করতে এবং বেশ কয়েকটি ইমেজ ট্যাগ ফেরত দিতে বলবেন; উদাহরণস্বরূপ, যদি একটি নীল আকাশের একটি চিত্র প্রদান করা হয়, ক্লাউড ভিশন API নীল , আকাশ এবং প্রকৃতি ট্যাগগুলি ফেরত দিতে পারে৷

watchGmailMessages ক্লাউড ভিশন API কল করতে Node.js-এর জন্য ক্লাউড ভিশন API লাইব্রেরি ব্যবহার করে:

// Tag the attachment using Cloud Vision API
const analyzeAttachment = async (data, filename) => {
  var topLabels = ['', '', ''];
  if (filename.endsWith('.png') || filename.endsWith('.jpg')) {
    const [analysis] = await visionClient.labelDetection({
      image: {
        content: Buffer.from(data, 'base64')
      }
    });
    const labels = analysis.labelAnnotations;
    topLabels = labels.map(x => x.description).slice(0, 3);
  }

  return topLabels;
};

গুগল শীট আপডেট করুন

watchGmailMessages এই বিশ্লেষণের ফলাফল একটি Google পত্রকে রপ্তানি করে। এতে প্রেরকের নাম, সংযুক্তির নাম এবং ছবি সংযুক্তির ট্যাগ (যদি থাকে) অন্তর্ভুক্ত থাকে।

প্রথমে একটি গুগল শীট তৈরি করুন। Google পত্রক খুলুন এবং একটি নতুন স্প্রেডশীট শুরু করুন এর অধীনে খালি টেমপ্লেটে ক্লিক করুন। আপনার শীটের আইডি কপি করুন। উদাহরণস্বরূপ, যদি আপনার ব্রাউজারে ঠিকানাটি এরকম দেখায়:

https://docs.google.com/spreadsheets/d/abcdefghij01234567890/edit#gid=0

আপনার স্প্রেডশীটের আইডি হল abcdefghij01234567890 । ক্লাউড শেল কোড এডিটরে, gcf-gmail-codelab/pubsub/env_vars.yaml আপডেট করুন এবং আপনার নিজের মান দিয়ে YOUR-GOOGLE-SHEET-ID প্রতিস্থাপন করুন।

watchGmailMessages তথ্য যোগ করতে Google Sheets API-এর সাথে সংযোগ করে:

const updateReferenceSheet = async (from, filename, topLabels) => {
  await googleSheets.spreadsheets.values.append({
    spreadsheetId: SHEET,
    range: SHEET_RANGE,
    valueInputOption: 'USER_ENTERED',
    requestBody: {
      range: SHEET_RANGE,
      majorDimension: 'ROWS',
      values: [
        [from, filename].concat(topLabels)
      ]
    }
  });
};

এক শেষ ধাপ

ক্লাউড শেল কোড এডিটরে, gcf-gmail-codelab/pubsub/env_vars.yaml খুলুন এবং YOUR-GOOGLE-CLIENT-ID , YOUR-GOOGLE-CLIENT-SECRET , এবং YOUR-GOOGLE-CALLBACK-URL আপনার নিজস্ব মান দিয়ে প্রতিস্থাপন করুন। আপনি Google ক্লাউড কনসোলে এই মানগুলি খুঁজে পেতে পারেন: বাম নেভিগেশন মেনুতে ক্লাউড ফাংশন খুলুন, ক্লাউড ফাংশনগুলির তালিকায় auth_init নির্বাচন করুন এবং এনভায়রনমেন্ট ভেরিয়েবল বিভাগটি সন্ধান করুন৷

কোড স্থাপন করুন

ক্লাউড ফাংশন স্থাপন করতে নীচের কমান্ডটি চালান:

cd ~

cd gcf-gmail-codelab/pubsub

gcloud functions deploy watchGmailMessages --runtime=nodejs8 --trigger-topic=gmail-watch --env-vars-file=env_vars.yaml

আপনি যদি আপনার ক্লাউড পাব/সাব বিষয়ের নাম gmail-watch ছাড়া অন্য কিছু দিয়ে থাকেন, তাহলে উপরের কমান্ডে আপনার বিষয়ের নামের সাথে gmail-watch প্রতিস্থাপন করুন। ক্লাউড ফাংশন স্থাপন করতে কয়েক সেকেন্ড সময় লাগতে পারে।

7. এটা চেষ্টা করে দেখুন

অভিনন্দন, আপনি সম্পন্ন! একটি ইমেজ সংযুক্তি সহ নিজেকে একটি ইমেল পাঠান. কয়েক সেকেন্ডের মধ্যে আপনি আপনার দেওয়া তথ্যের সাথে স্বয়ংক্রিয়ভাবে আপডেট করা Google পত্রকটি দেখতে পাবেন।