ডায়লগ প্রবাহ এবং নোড.জেএস ব্যবহার করে ফেসবুক ম্যাসেঞ্জারের জন্য চ্যাটবট: পর্ব 1।

সংক্ষিপ্ত বিবরণ

এখানে আমরা ডায়ালগফ্লো এবং নোড.জেএস ব্যবহার করে সাধারণ ফেসবুক মেসেঞ্জার চ্যাটবোট তৈরি করতে যাচ্ছি আমরা এর গভীরে যাব না তবে আমরা ম্যাসেঞ্জার প্ল্যাটফর্মটি জেনেরিক টেম্পলেট, প্রাপ্তি, বোতাম, মিডিয়া, তালিকা এবং গ্রাফের মতো সমর্থন করে এমন সমস্ত প্রতিক্রিয়াগুলি coverাকব।

পূর্বশর্ত

  • ফেসবুক পাতা
  • ফেসবুক বিকাশকারী অ্যাকাউন্ট
  • ডায়ালগফ্লো বোঝা
  • নোড.জেএস এর জ্ঞান

শুরু হচ্ছে

আসুন ফেসবুক ডেভেলপার অ্যাকাউন্ট থেকে ফেসবুক অ্যাপ তৈরি করে শুরু করি।

আপনাকে ড্যাশবোর্ডে পুনঃনির্দেশ করা হবে, সেখান থেকে একটি মেসেঞ্জার পণ্য যুক্ত করুন

সেট আপ করার পরে, টোকন জেনারেশনে আপনার ফেসবুক পৃষ্ঠাটি নির্বাচন করুন এবং সেখান থেকে টোকেন উত্পন্ন করুন।

সার্ভার সেট করা হচ্ছে

Node.js এ একটি সাধারণ সার্ভার তৈরি করা সহজ।

আপনি যেখানে এই প্রকল্পটি সেট আপ করতে যাচ্ছেন সেখানে আপনার পছন্দসই ফোল্ডারে নেভিগেট করুন। আপনার টার্মিনালে সেই ফোল্ডারটি খুলুন এবং এনটিএম চালান এটি প্যাকেজ.জসন ফাইল উত্পন্ন করবে।

এখন, আমাদের আমাদের নির্ভরতাগুলি ইনস্টল করতে হবে, এনপিএম চালান এবং বডি পার্সার এক্সপ্রেস এক্সপ্রেস সংরক্ষণ করুন

নির্ভরতা ইনস্টল করার পরে সূচি.জেএস ফাইল তৈরি করুন এবং সেই নির্ভরতা আমদানি করুন যা আমরা সবেমাত্র ইনস্টল করেছি এবং সাধারণ এক্সপ্রেস সার্ভার তৈরি করি। এছাড়াও একটি কনফিগার.জেএস ফাইল তৈরি করুন যাতে আমরা আরও ভাল কোড পরিচালনা এবং সুরক্ষার প্রয়োজনে বা কনফিগারেশন এর পরিবর্তে en এনভি ফাইল তৈরি করতে পারি তার পরিবর্তে সেই ফাইলটিতে আমাদের শংসাপত্রগুলি সংরক্ষণ করতে পারি।

Index.js

কনট আপিয়া = প্রয়োজনীয় ("আপিয়া");
কনট এক্সপ্রেস = প্রয়োজনীয় ("এক্সপ্রেশন");
কনস্ট বডি পার্সার = প্রয়োজনীয় ("বডি পার্সার");
কনস্ট uuid = প্রয়োজনীয় ("uuid");
কনস্ট অ্যাক্সিস = প্রয়োজনীয় ('অ্যাক্সিস');
// আমদানি কনফিগারেশন ফাইল
কনস্টেপ কনফিগারেশন = প্রয়োজনীয় ("./ কনফিগারেশন");
// সেট পোর্ট
অ্যাপ.সেট ("পোর্ট", ​​প্রসেস.এনভি.এپورটি || 5000);
// সর্বজনীন ডিরেক্টরিতে স্থির ফাইল পরিবেশন করুন
app.use (express.static ( "পাবলিক"));
// প্রক্রিয়া অ্যাপ্লিকেশন / x-www-form-urlencoded
app.use (
bodyParser.urlencoded ({
প্রসারিত: মিথ্যা
})
);
// প্রক্রিয়া অ্যাপ্লিকেশন / json
app.use (bodyParser.json ());
// সূচির রুট
app.get ("/", ফাংশন (req, res) {
res.send ("হ্যালো ওয়ার্ল্ড, আমি একটি চ্যাট বট");
});
// ফেসবুক যাচাইয়ের জন্য
app.get ("/ ওয়েবহুক /", ফাংশন (req, res) {
console.log ( "অনুরোধ");
যদি (
req.query ["hub.mode"] === "সাবস্ক্রাইব" &&
req.query ["hub.verify_token"] === কনফিগারেশন। এফবি_ভিরিফাইআরএফকেইন
) {
res.status (200) .send (req.query [ "hub.challenge"]);
} অন্য {
কনসোল.অরর ("বৈধতা ব্যর্থ হয়েছে sure বৈধতা টোকেনের সাথে মেলে তা নিশ্চিত করুন” ");
res.sendStatus (403);
}
});
// সার্ভার স্পিন আপ
app.listen (app.get ("পোর্ট")), ফাংশন () {
কনসোল.লগ ("পোর্টে ম্যাজিক শুরু হয়েছে", অ্যাপ.গেট ("পোর্ট"));
});

সার্ভার স্পিন আপ। আমাদের যোগাযোগ লাইভ করা দরকার তাই এখানে আমরা আমাদের লোকালহোস্টকে লাইভ করতে এনগ্রোক ব্যবহার করছি তবে আপনি সর্বদা হেরেকু, লোকালটুনেল বা অন্য কোনও তৃতীয় পক্ষের পরিষেবাগুলির মতো অন্য কোনও প্ল্যাটফর্ম ব্যবহার করতে পারেন।

আমাদের সার্ভারটি লাইভ টাইপ করতে আপনার টার্মিনালে ./ngrok HTTP 5000 করুন যা আপনাকে লাইভ URL দেবে। তবে উপরের কমান্ডটি চালনার সময় আপনি আপনার উপযুক্ত ওএস এর জন্য এনগ্রোক ডাউনলোড করেছেন তা নিশ্চিত করুন। সাফল্যের সাথে উপরের কমান্ডটি কার্যকর করতে এনগ্রোক ফাইলটি আপনার বর্তমান ওয়ার্কিং ডিরেক্টরিতে থাকা উচিত।

Config.js

মডিউল.এক্সপোর্ট = {
FB_PAGE_TOKEN: "পৃষ্ঠা অ্যাক্সেস টোকন",
FB_VERIFY_TOKEN: "ওয়েবহুকের জন্য ফেসবুক যাচাইকরণ কোড",
এপিআই_এআইএল_সিএলআইসিএসিএএসসিএসএফএসকেইন: "ডায়ালগফ্লো টোকেন",
FB_APP_SECRET: "ফেসবুক সিক্রেট কোড",
};

এফবি_সাগলটোকেন: আমরা তৈরি হওয়া পৃষ্ঠা অ্যাক্সেস টোকনটি অনুলিপি করুন এবং কনফিগারেশনগুলিতে পেস্ট করুন। FB_APP_SECRET: আপনি সেটিংসে অ্যাপ সিক্রেট পাবেন

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

আপনি যখন যাচাই করুন এবং সংরক্ষণ করুন ক্লিক করবেন তখন আপনি Facebook থেকে যাচাইকরণের জন্য জিইটি অনুরোধ পাবেন। (আপনি https: // URL টি অনুলিপি করেছেন তা নিশ্চিত করুন)

FB_VERIFY_TOKEN: আপনার config.js ফাইলে যাচাই টোকেন আটকে দিন। SERVER_URL: আপনার এনগ্রোক লাইভ ইউআরএল এবং পেস্ট অনুলিপি করুন।

ডায়ালগফ্লো ইন্টিগ্রেশন

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

আসুন ডায়লগফ্লোতে অভিপ্রায় তৈরি করি।

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

আপনি যদি ডায়লগফ্লোর সাথে পরিচিত না হন তবে দয়া করে ডকুমেন্টেশনটি পড়ুন।

আসুন সূচীতে ফিরে আসি। ডায়ালগফ্লোতে সংযোগের জন্য এই কোড স্নিপেট যুক্ত করুন।

কনট apiAiService = apiai (config.API_AI_CLIENT_ACCESS_TOKEN, {
ভাষা: "এন",
অনুরোধসোর্স: "এফবি"
});
কনস্টেশন সেশনআইডস = নতুন মানচিত্র ();

ওয়েবহুক এন্ডপয়েন্টটি সেটআপ করুন

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

/ *
* ম্যাসেঞ্জারের জন্য সমস্ত কলব্যাকগুলি পোস্ট-এড। তাদের একই প্রেরণ করা হবে
* ওয়েবহুক কলব্যাকগুলি পাওয়ার জন্য আপনার অ্যাপ্লিকেশনটিকে আপনার পৃষ্ঠায় সাবস্ক্রাইব করতে ভুলবেন না
* আপনার পৃষ্ঠার জন্য
* https://developers.facebook.com/docs/mes यात्रा- প্ল্যাটফর্ম / প্রোডাক্ট- ওভারভিউ / সেটআপ# সাবস্ক্রাইব_অ্যাপ
*
* /
app.post ("/ ওয়েবহুক /", ফাংশন (req, res) {
var ডেটা = req.body;
// নিশ্চিত করুন এটি একটি পৃষ্ঠার সাবস্ক্রিপশন is
যদি (ডেটা.ওজেক্ট == “পৃষ্ঠা”) {
// প্রতিটি এন্ট্রি উপর Iterate
// ব্যাচ করা থাকলে একাধিক থাকতে পারে
data.entry.forEach (ফাংশন (পেজেন্ট্রি))
var pageID = pageEntry.id;
var timeOfEvent = pageEntry.time;
// প্রতিটি বার্তাপ্রেরণের ইভেন্টের উপর Iterate
pageEntry.messasing.forEach (ফাংশন (মেসেজিংএভেন্ট) {
যদি (ম্যাসেজিংএভেন্ট.মেসেজ) {
receivedMessage (messagingEvent);
} অন্য {
কনসোল.লগ ("ওয়েবহুক অজানা বার্তাপ্রেরণ গ্রহণ করেছে:", মেসেজিংএভেন্ট);
}
});
});
// ধরে নিও সব ঠিকঠাক হয়েছে।
// আপনাকে অবশ্যই 200 সেকেন্ডের মধ্যে 20 সেকেন্ডের মধ্যে পাঠাতে হবে
res.sendStatus (200);
}
});

বার্তা, বার্তা পাঠানো_পোস্টব্যাক এই দুটি ইভেন্ট যা ওয়েবহুক সেট আপ করার সময় আমরা পরীক্ষা করেছিলাম। (আমরা এখানে পোস্টব্যাক ইভেন্টটি ব্যবহার করছি না) প্রাপ্ত ম্যাসেজ (মেসেজিংএভেন্ট) আসুন এখনই এই ফাংশনটি করা যাক,

ফাংশনটি প্রাপ্তি ম্যাসেজ (ইভেন্ট) {
var প্রেরক ID = ইভেন্ট.sender.id;
var recipientID = ইভেন্ট.recipient.id;
var timeOfMessage = ইভেন্ট.টাইমস্ট্যাম্প;
var ম্যাসেজ = ইভেন্ট.মেসেজ;
যদি (! সেশনআইডস.হাস (প্রেরকআইডি)) {
সেশনআইডস.সেট (প্রেরকআইডি, uuid.v1 ());
}
var ম্যাসেজআইডি = ম্যাসেজ.মিড;
var appId = message.app_id;
var metadata = message.metadata;
// আপনি একটি পাঠ্য বা সংযুক্তি পেতে পারেন তবে দুটি নয়
var ম্যাসেজটেক্সট = ম্যাসেজ.টেক্সট;
var messageAttachments = ম্যাসেজ.এটাচমেন্টস;
যদি (বার্তা পাঠ্য) {
// api.ai এ বার্তা প্রেরণ করুন
sendToApiAi (সেন্ডারআইডি, বার্তা পাঠ্য);
} অন্যথায় যদি (বার্তা সংযুক্তি) {
হ্যান্ডেলমেসেজএটাচমেন্টস (মেসেজএটাচমেন্টস, প্রেরকআইডি);
}
}

আপনি যদি ইভেন্টটি কনসোল করেন তবে আপনি জেএসওএনকে পছন্দ পাবেন,

আপাতত, প্রেরক.আইডি এবং কি বার্তা.টেক্সটে ফোকাস করুন। যদি মেসেজডেসেজ () ফাংশনে মেসেজটেক্সট থাকে তবে আমরা সেন্ডটোএপিআইআই () কল করব।

এই ফাংশনে, আমরা প্রথমে সেন্ডটাইপিংঅনকে কল করব যে ম্যাসেঞ্জারে টাইপ করছে ot

ফাংশন sendToApiAi (প্রেরক, পাঠ্য) {
sendTypingOn (প্রেরক);
আসুন apiaiRequest = apiAiService.textRequest (পাঠ্য, {
সেশনআইডি: সেশনআইডস.জেট (প্রেরক)
});
apiaiRequest.on ("প্রতিক্রিয়া", প্রতিক্রিয়া =>
যদি (isD সংজ্ঞায়িত (প্রতিক্রিয়া। ফলাফল)) {
handleApiAiResponse (প্রেরক, প্রতিক্রিয়া);
}
});
apiaiRequest.on ("ত্রুটি", ত্রুটি => কনসোল.অরর (ত্রুটি));
apiaiRequest.end ();
}

টাইপিং প্রেরণ করুন

সেন্ডটাইপিং টাইপিং অ্যাকশন প্রেরণের জন্য এপিআই পাঠাতে ফেসবুককে কল করবে।

/ *
* টাইপিং সূচক চালু করুন
*
* /
কনস্ট সেন্ডটাইপিংঅন = (প্রাপকআইডি) =>
var বার্তা ডেটা = {
প্রাপক: {
আইডি: প্রাপকআইডি
},
প্রেরক_অ্যাকশন: "টাইপিং_অন"
};
callSendAPI (messageData);
}

কলসেনডাপি () ফাংশনটি আমরা যে বার্তাটি উত্পন্ন করছি তা প্রেরণ করবে। (এখানে আমরা অ্যাকশনে টাইপিং প্রেরণ করছি)

/ *
* প্রেরণ API কে কল করুন। বার্তার ডেটা শরীরে যায়। সফল হলে, আমরা করব
* একটি প্রতিক্রিয়া বার্তা আইডি পান
*
* /
কনস্ট কলসেনডাপি = অ্যাসিঙ্ক (বার্তা ডেটা) =>
কনস্ট url = "https://راف.facebook.com/v3.0/me/messages?access_token=" + config.FB_PAGE_TOKEN;
axios.post (url, messageData) অপেক্ষা করুন
.থন (ফাংশন (প্রতিক্রিয়া) {
যদি (প্রতিক্রিয়া। স্ট্যাটাস == ২০০) {
var প্রাপকআইডি = প্রতিক্রিয়া.ডাটা.রেসিপিয়েন্ট_আইডি;
var ম্যাসেজআইডি = প্রতিক্রিয়া.ডাটা.মেসেজ_আইডি;
যদি (ম্যাসেজআইডি) {
console.log (
"প্রাপক% s প্রাপকের সাথে সাফল্যের সাথে বার্তা প্রেরণ করেছে",
messageId,
recipientId
);
} অন্য {
console.log (
"প্রাপক% s এর জন্য সফলভাবে API পাঠান",
recipientId
);
}
}
})
.ক্যাচ (ফাংশন (ত্রুটি) {
console.log (error.response.headers);
});
}

এরপরে সেন্ডটোএপিআই () ফাংশনে ফিরে আসি আমরা যথাযথ প্রতিক্রিয়া পাচ্ছি তা নিশ্চিত করার জন্য আমরা একটি ইসডফাইন্ডড () ফাংশন কল করছি।

কনস্ট isD সংজ্ঞায়িত = (আপত্তি) =>
যদি (প্রবন্ধ == "অপরিজ্ঞাত") {
প্রত্যাবর্তন মিথ্যা;
}
যদি (! আপত্তি) {
প্রত্যাবর্তন মিথ্যা;
}
রিটার্ন আপত্তি! = নাল;
}

একই ফাংশনে সেন্ডটোএপিআইআই () আমরা ডায়ালগফ্লো থেকে জেএসএন আকারে প্রতিক্রিয়া পাব।

হ্যান্ডেলঅপিআইআরআইপিএস () এ ডেটা প্রেরণ করুন।

ফাংশন হ্যান্ডেলএপিআইআইরেসপনস (প্রেরক, প্রতিক্রিয়া) {
যাক রেসপন্সটেক্সট = প্রতিক্রিয়া .result.fulfillment.speech;
যাক প্রতিক্রিয়াডাটা = প্রতিক্রিয়া.ফেসারফুলফিলমেন্ট.ডেটা;
বার্তাগুলি = প্রতিক্রিয়া.ফসলে.ফিলমেন্ট.মেসেজগুলি দিন;
চলুন পদক্ষেপ = প্রতিক্রিয়া।
প্রসঙ্গগুলি = প্রতিক্রিয়া।
পরামিতিগুলি = প্রতিক্রিয়া।
sendTypingOff (প্রেরক);
যদি (প্রতিক্রিয়া পাঠ্য == "" &&! is সংজ্ঞায়িত (কর্ম)) {
// এপিআই আইআই ইনপুট মূল্যায়ন করতে পারেনি।
কনসোল.লগ ("অজানা জিজ্ঞাসা" + প্রতিক্রিয়া।
লিখিত সংবাদ পাঠাও(
প্রেরক,
“আমি নিশ্চিত আপনি কি চান না। আপনি আরো নির্দিষ্ট হতে পারে?"
);
} অন্যথায় যদি (is परिभाषित (কর্ম)) {
HandApiAiAction (প্রেরক, ক্রিয়া, প্রতিক্রিয়া পাঠ্য, প্রসঙ্গ, পরামিতি);
} অন্যথায় যদি (isD সংজ্ঞায়িত (রেসপন্সডাটা)) && এর সংজ্ঞা দেওয়া হয় (প্রতিক্রিয়া ডেটা.ফেসবুক)) {
চেষ্টা করুন
কনসোল.লগ ("ফর্ম্যাট বার্তা হিসাবে প্রতিক্রিয়া" + প্রতিক্রিয়া ডেটা.ফেসবুক);
সেনটেক্সটমেসেজ (প্রেরক, প্রতিক্রিয়াডাটা.ফেসবুক);
} ধরা (ভুল) {
সেন্ডটেক্সটমেসেজ (প্রেরক, err.message);
}
} অন্যথায় যদি (is परिभाषित (প্রতিক্রিয়া পাঠ)) {
সেনটেক্সটমেসেজ (প্রেরক, প্রতিক্রিয়া পাঠ্য);
}
}

টাইপিং বন্ধ পাঠান

মনে রাখবেন? আমরা মেসেঞ্জারে অ্যাকশন উপর টাইপ করা শুরু করেছি এখনই এটি বন্ধ করে প্রেরণ টাইপিং অফ () ফাংশনটি কল করুন।

/ *
* টাইপিং সূচক বন্ধ করুন
*
* /
কনস্ট সেন্ডটাইপিং অফ = (প্রাপকআইডি) => {
var বার্তা ডেটা = {
প্রাপক: {
আইডি: প্রাপকআইডি
},
প্রেরক_অ্যাকশন: "টাইপিং_অফ"
};
callSendAPI (messageData);
}

লিখিত সংবাদ পাঠাও

যখনই আমরা ব্যবহারকারীর কাছ থেকে অজানা জিজ্ঞাসা পাই আমরা সেই ব্যবহারকারীর কাছে ডিফল্ট বার্তা পাঠাতে হবে।

কনস্ট সেন্ডটেক্সটমেসেজ = অ্যাসিঙ্ক (প্রাপকআইডি, পাঠ্য) => {
var বার্তা ডেটা = {
প্রাপক: {
আইডি: প্রাপকআইডি
},
বার্তা: {
পাঠ্য: পাঠ্য
}
};
কলসেন্দাপি (মেসেজডাটা) অপেক্ষা করুন;
}

উপরের ফাংশনটি ফেসবুক প্রেরণকারী এপিআই কল করবে এবং পাঠ্য বার্তাটি প্রেরণ করবে যা আমরা ডিফল্ট হিসাবে সংজ্ঞায়িত করেছি।

এখন, যদি ব্যবহারকারীর অভিপ্রায়টি সংলাপ প্রবাহের সাথে মিলে যায় তবে আমরা সেই অভিপ্রায়টির ক্রিয়াটি (ডায়ালগফ্লো প্রতিক্রিয়া থেকে প্রাপ্ত একটি ক্রিয়া) পেয়ে যাব, ক্রিয়াটির ভিত্তিতে আমরা প্রতিটি ব্যবহারকারীর প্রতিক্রিয়া প্রেরণ করব।

যখন কোনও ব্যবহারকারী জিজ্ঞাসা করে: "আমাকে পাঠ্য বার্তার একটি উদাহরণ পাঠান" -> আমাদের অভিপ্রায় “প্রেরণ-পাঠ্য” কল হবে এবং অভিপ্রায়ের ভিত্তিতে আমরা এর অনন্য ক্রিয়াটি পেয়ে যাব। আমার ক্ষেত্রে, আমি একই ক্রিয়াকলাপটির উদ্দেশ্য হিসাবে একই নাম দিয়েছি।

যদি আমরা ডায়লগফ্লো প্রতিক্রিয়া থেকে অ্যাকশন পাই তবে আমরা হ্যান্ডেলঅপিআইআইএ্যাকশন () কল করছি।

ফাংশন হ্যান্ডেলঅপিআইআইএশন (প্রেরক, ক্রিয়া, প্রতিক্রিয়া পাঠ্য, প্রসঙ্গ, পরামিতি) {
স্যুইচ (ক্রিয়া) {
কেস "পাঠান পাঠ্য":
var প্রতিক্রিয়া পাঠ্য = "এটি পাঠ্য বার্তার উদাহরণ।"
সেনটেক্সটমেসেজ (প্রেরক, প্রতিক্রিয়া পাঠ্য);
বিরতি;
ডিফল্ট:
// হাতছাড়া করা পদক্ষেপ, কেবল পাঠ্যটি প্রেরণ করুন
সেনটেক্সটমেসেজ (প্রেরক, প্রতিক্রিয়া পাঠ্য);
}

মূলত www.yudiz.com এ প্রকাশিত।

লিখেছেন নিখিল সাভালিয়া

আরো দেখুন

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