চ্যাটবট ওয়েব এমুলেটরটিতে কাজ করেনি তবে স্থানীয় বট ফ্রেমওয়ার্ক এমুলেটরটিতে ভাল কাজ করে


9

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

কেউ কীভাবে সমাধান করতে জানেন?

এর সাথে আমার স্ক্রিনশট। বাম হাতটি ওয়েব এমুলেটর থেকে, ডান হাতের দিকটি স্থানীয় বট ফ্রেমওয়ার্ক এমুলেটর থেকে

এখানে চিত্র বর্ণনা লিখুন

উত্স কোড সহ আপডেট (09 ডিসেম্বর 2019)

XmlNamespaceManager xmlnspm = new XmlNamespaceManager(new NameTable());

Uri sharepointUrl = new Uri("https://mvponduty.sharepoint.com/sites/sg/daw/");

xmlnspm.AddNamespace("atom", "http://www.w3.org/2005/Atom");
xmlnspm.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices");
xmlnspm.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");

NetworkCredential cred = new System.Net.NetworkCredential("engsooncheah@mvponduty.onmicrosoft.com", "Pa$$w0rd", "mvponduty.onmicrosoft.com");

HttpWebRequest listRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "_api/lists/getByTitle('" + "data@work" + "')/items?$filter=Keywords%20eq%20%27bloomberg%27");
listRequest.Method = "GET";
listRequest.Accept = "application/atom+xml";
listRequest.ContentType = "application/atom+xml;type=entry";

listRequest.Credentials = cred;
//LINE 136 start from below
HttpWebResponse listResponse = (HttpWebResponse)listRequest.GetResponse();
StreamReader listReader = new StreamReader(listResponse.GetResponseStream());
XmlDocument listXml = new XmlDocument();

listXml.LoadXml(listReader.ReadToEnd());

if (listResponse.StatusCode == HttpStatusCode.OK)
{
    Console.WriteLine("Connected");
    await turnContext.SendActivityAsync("Connected");
}

// Get and display all the document titles.
XmlElement root = listXml.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("content");
XmlNodeList elemList_title = root.GetElementsByTagName("d:Title");
XmlNodeList elemList_desc = root.GetElementsByTagName("d:Description");

//for LINK
XmlNodeList elemList_Id = root.GetElementsByTagName("d:Id");
XmlNodeList elemList_Source = root.GetElementsByTagName("d:Sources");
XmlNodeList elemList_ContentTypeId = root.GetElementsByTagName("d:ContentTypeId");

var attachments = new List<Attachment>();
for (int i = 0; i < elemList.Count; i++)
{

    string title = elemList_title[i].InnerText;
    string desc = elemList_desc[i].InnerText;

    string baseurllink = "https://mvponduty.sharepoint.com/sites/sg/daw/Lists/data/DispForm.aspx?ID=";
    string LINK = baseurllink + elemList_Id[i].InnerText + "&Source=" + elemList_Source[i].InnerText + "&ContentTypeId=" + elemList_ContentTypeId[i].InnerText;

    //// Hero Card
    var heroCard = new HeroCard(
        title: title.ToString(),
        text: desc.ToString(),

        buttons: new CardAction[]
        {
            new CardAction(ActionTypes.OpenUrl,"LINK",value:LINK)
        }
    ).ToAttachment();
    attachments.Add(heroCard);
}
var reply = MessageFactory.Carousel(attachments);
await turnContext.SendActivityAsync(reply);

আপডেট 17 ডিসেম্বর 2019

আমি এম্বেডেড এবং ডাইরেক্ট লাইন ব্যবহার করার চেষ্টা করেছি। তবে ত্রুটিটি এখনও একই।

বটটি শেয়ারপয়েন্টে হোস্ট করা হয় না।

আপডেট 06 জানুয়ারী 2020 এটি অ্যাজুরে বট পরিষেবাগুলিতে কাজ করে না


ওয়েব এমুলেটর দ্বারা, আপনি ওয়েব চ্যাট বৈশিষ্ট্যে টেস্ট বলতে চান? বা এটি একটি সম্পূর্ণ ওয়েবচ্যাট বান্ডিল / বাস্তবায়ন। এটি কি কোনও শেয়ারপয়েন্ট পৃষ্ঠা / ওয়েবপার্ট / এসপিএফএক্স-এ হোস্ট করা হচ্ছে?
ডানা ভি

@ ডানাভ, হ্যাঁ ওয়েব এমুলেটরটি আজুর ওয়েব এমুলেটরটিতে রয়েছে এবং অন্য ওয়েবপৃষ্ঠায় ওয়েবচ্যাটে সরাসরিলাইন ব্যবহার করছে। চ্যাটবোটটি শেয়ারপয়েন্ট পৃষ্ঠায় হোস্ট করা হয় না।
Eng শীঘ্রই চাহ

উত্তর:


4

আপনার বর্ণনার ভিত্তিতে, আপনি স্থানীয়ভাবে এটি থেকে ডেটা আনতে পারেন। এর অর্থ আপনার কোড এবং যুক্তি ঠিক আছে।

আমি লক্ষ্য করেছি যে আপনার শেয়ারপয়েন্টের URL টি: https://mvponduty.sharepoint.com/sites/sg/daw/এবং আমি এটি অ্যাক্সেস করার চেষ্টা করেছি এবং আপনার সম্পূর্ণ অনুরোধ URL টি অ্যাক্সেস করার চেষ্টা করেছি: https://mvponduty.sharepoint.com/sites/sg/daw/_api/lists/getByTitle('data@work')/items?$filter=Keywords eq 'bloomberg'দুজনের প্রতিক্রিয়া সমস্ত 404।

এবং আপনি বলেছিলেন যে এটি একটি অন-প্রিমিটি সাইট, সুতরাং আপনি যদি একটি সাইট পাবলিক নেটওয়ার্ক থেকে পৌঁছাতে পারেন তবে আপনার একটি চেক থাকতে পারে?

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

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


সংশোধন করুন, অভ্যন্তরীণ শেয়ারপয়েন্ট থেকে ডেটা পুনরুদ্ধার করুন। আমার কি অভ্যন্তরীণ শেয়ারপয়েন্টে চ্যাটবট প্রকাশ করা উচিত?
ইঞ্জিনিউন শিওা চাহা

হাই @ এঙ্গসুনচিয়া এই বটটি কে ব্যবহার করবেন তার উপর ভিত্তি করে, এটি যদি কেবলমাত্র আপনার অভ্যন্তরীণ নেটওয়ার্ক ব্যবহারকারীদের জন্য হয়, তাত্ত্বিকভাবে, আপনি এটি আপনার শেয়ারপয়েন্ট সাইটটিতে নেটওয়ার্কে প্রকাশ করতে পারেন external যদি বহিরাগত ব্যবহারকারীদের এটি অ্যাক্সেস করার প্রয়োজন হয় তবে আপনার এটিতে প্রকাশ করা উচিত আপনার বোট অ্যাপ্লিকেশন পরিষেবাটি আপনার স্থানীয় সাইটের সাথে সংযুক্ত করতে আজুর বট পরিষেবা এবং অ্যাজুর অ্যাপ সার্ভিসের হাইব্রিড সংযোগ বৈশিষ্ট্য (অ্যাজুরে বট পরিষেবাটি অ্যাজুরে অ্যাপ্লিকেশন পরিষেবা ভিত্তিক) ব্যবহার করুন। আমি মনে করি এই দস্তাবেজটি সহায়ক হবে: azuregems.io/azure-hybrid- সংযোগগুলি
স্ট্যানলি গং

হাই @ ইংসুনচিয়া, কেমন চলছে? আপনার সমস্যা সমাধান হয়েছে?
স্ট্যানলে গং

এখনও আজুর হাইব্রিড সংযোগগুলি চেষ্টা করে দেখছি।
ইঞ্জিনিউন শীঘ্রই চিয়া

@ ইংসুনচিয়া, আহ ... আমি দেখছি শুভকামনা, যদি কোনও আপডেট থাকে তবে প্লিজ আমাকে জানান:)
স্ট্যানলি গং

2

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


সোর্স কোড নিয়ে আমার আপডেট ছিল।
Eng শীঘ্রই চাহ

ডিসপ্যাচবট.সি.এস এ 136 লাইনে ত্রুটি শুরু হয়। এটি কোন লাইন? এই পদ্ধতি ProcessRSSAsync লাইন 136 দেখতে প্রয়োজন
ওয়ালিদ

আমি উত্স কোডটি আপডেট করেছি, লাইন 136 এইচটিটিপিওয়েবারেস্পোনস থেকে
শীঘ্রই

ঠিক আছে. স্থানীয়ভাবে মনে হচ্ছে আপনি শেয়ারপয়েন্টটি আরএসএস সূক্ষ্মভাবে অ্যাক্সেস করতে পারবেন, তবে হোস্ট করার সময় এটি একই এক্সএমএল ফিরিয়ে দিচ্ছে না যার অর্থ এটি সম্ভবত এটিএমএল ত্রুটি পৃষ্ঠাতে ফিরে আসবে। আমি তোমার ত্রুটি অনুসন্ধান করা এবং এই পাওয়া যায়নি: forums.asp.net/t/... এটা প্রস্তাব করে যে আপনি প্রক্সি ব্যবহার করতে প্রয়োজন হতে পারে, যে লিঙ্কে কোড নমুনা চেষ্টা করুন
ওয়ালিদ

ত্রুটি প্রদর্শন: সিস্টেম.প্লাটফর্ম নটসপোর্টড এক্সসেপশন: এই প্ল্যাটফর্মটিতে অপারেশন সমর্থিত নয়।
ইঞ্জিনিউন শীঘ্রই চাহ

2

আপনি যখন আপনার বট প্রকাশ করেন, নীচের মত একটি বিকল্প থাকবে:

ভাবমূর্তি

অ্যাপ্লিকেশন পরিষেবা সেটিংস সম্পাদনা করুন নির্বাচন করুন। কেবলমাত্র নিম্নলিখিত বিবরণগুলি যুক্ত করুন, অন্য কিছু নয়:

MicrosoftAppId : <xxxxx>
MicrosoftAppPassword : <xxxxx>

ঠিক আছে, ক্লিক করুন।

নিশ্চিত হয়ে নিন যে আপনি Microsoft App Idএবং Microsoft App Passwordএটিকে appsettings.json থেকে সরিয়েছেন, যাতে এটি বট এমুলেটরটিতেও কাজ করে।

এখন বট প্রকাশ করুন। এটি উভয় জায়গায় কাজ করবে।

আশা করি এটি সহায়ক।


আমি কেবল পূর্বরূপ ও কনফিগারটি দেখেছি কারণ আমি আজুর পোর্টাল থেকে চ্যাটবট উত্স কোডটি ডাউনলোড করেছি।
ইঞ্জিনিউন শিওহ চেহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.