البدء السريع: استخدام مكتبة عميل Bing News Search
تحذير
في 30 أكتوبر 2020، انتقلت واجهات برمجة تطبيقات البحث Bing من الخدمات المعرفية إلى خدمات البحث Bing. يتم توفير هذه الوثائق للرجوع إليها فقط. للحصول على الوثائق المحدثة، راجع وثائق واجهة برمجة تطبيقات البحث Bing. للحصول على إرشادات حول إنشاء موارد Azure جديدة للبحث Bing، راجع إنشاء مورد بحث Bing خلال Azure Marketplace.
استخدم التشغيل السريع لبدء البحث عن الأخبار باستخدام مكتبة العميل الخاصة بـ Bing News Search لـ C#. على الرغم من أن Bing News Search لديها REST APIالذي يعد متوافقاً مع معظم لغات البرمجة، تقدم مكتبة العميل وسيلة سهلة لدمج الخدمة في التطبيقات الخاصة بك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
أي نسخة من Visual Studio 2017 أو أي نسخة أحدث.
إطار عمل Json.NُET متوفر كحزمة NuGet.
إذا كنت تستخدم Linux/MacOS، فإنه يمكن تشغيل هذا التطبيق باستخدام Mono.
The Bing News Search SDK NuGet package. تثبيت هذه الحزمة أيضًا بتثبيت ما يلي:
- Microsoft.Rest.ClientRuntime
- Microsoft.Rest.ClientRuntime.Azure
- Newtonsoft.Js
لإعداد تطبيق وحدة تحكم باستخدام مكتبة عميل Bing News Search، استعرض للوصول إلى Manage NuGet Packages الخيار من Solution Explorer في Visual Studio. أضفMicrosoft.Azure.CognitiveServices.Search.NewsSearch الحزمة.
أنشئ مورد Azure
ابدأ باستخدام Bing News Search API من خلال إنشاء أحد الموارد التالية لـ Azure:
- متوفر من خلال بوابة Azure لطالما لم تحذف المورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة وترقيتها لاحقاً إلي المستوى المدفوع الخاص بعملية الإنتاج.
- متوفر من خلال مدخل Azure إلى أن تقوم بحذف المورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
إنشاء وتهيئة المشروع
أنشئ حل وحدة تحكم C# جديداً في Visual Studio. ثم أضف التالي إلى ملف الرمز الرئيسي.
using System; using System.Linq; using Microsoft.Azure.CognitiveServices.Search.NewsSearch;إنشاء متغير لمفتاح API الخاص بك، مصطلح بحث، ثم إنشاء مثيل لعميل البحث عن الأخبار معه.
var key = "YOUR-ACCESS-KEY"; var searchTerm = "Quantum Computing"; var client = new NewsSearchClient(new ApiKeyServiceClientCredentials(key));
إرسال طلب، و تحليل النتيجة
استخدم العميل لإرسال طلب بحث إلى Bing News Search service:
var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;إذا تم إرجاع أي نتائج، فحلّلها:
if (newsResults.Value.Count > 0) { var firstNewsResult = newsResults.Value[0]; Console.WriteLine($"TotalEstimatedMatches value: {newsResults.TotalEstimatedMatches}"); Console.WriteLine($"News result count: {newsResults.Value.Count}"); Console.WriteLine($"First news name: {firstNewsResult.Name}"); Console.WriteLine($"First news url: {firstNewsResult.Url}"); Console.WriteLine($"First news description: {firstNewsResult.Description}"); Console.WriteLine($"First news published time: {firstNewsResult.DatePublished}"); Console.WriteLine($"First news provider: {firstNewsResult.Provider[0].Name}"); } else { Console.WriteLine("Couldn't find news results!"); } Console.WriteLine("Enter any key to exit..."); Console.ReadKey();
الخطوات التالية
استخدم بدء التشغيل السريع لبدء البحث عن الأخبار باستخدام مكتبة العميل الخاصة بـ Bing News Search لـ Java. على الرغم من أن Bing News Search لديها تطبيقREST API متوافق مع معظم لغات البرمجة، توفر مكتبة العميل وسيلة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
ثبت تبعيات مكتبة العميل الخاصة بـ Bing News Search باستخدام Maven أو Gradle أو نظام آخر لإدارة التبعية. يتطلب ملف نموذج كائن المشروع الخاص بـ Maven الإعلان التالي:
<dependencies>
<dependency>
<groupId>com.microsoft.azure.cognitiveservices</groupId>
<artifactId>azure-cognitiveservices-newssearch</artifactId>
<version>0.0.1-beta-SNAPSHOT</version>
</dependency>
</dependencies>
أنشئ مورد Azure
ابدأ باستخدام Bing News Search API من خلال إنشاء أحد الموارد التالية لـ Azure:
- متوفر من خلال بوابة Azure لطالما لم تحذف المورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة وترقيتها لاحقاً إلي المستوى المدفوع الخاص بعملية الإنتاج.
- متوفر من خلال مدخل Azure إلى أن تقوم بحذف المورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
أنشئ المشروع وابدأ فيه
أنشئ مشروع Java جديداً في بيئة التطوير المتكاملة أو المحرر المفضل لك واستورد المكتبات التالية.
import com.microsoft.azure.cognitiveservices.newssearch.*;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsInner;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsSearchAPIImpl;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.TrendingTopicsInner;
import com.microsoft.rest.credentials.ServiceClientCredentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
أنشئ عميل بحث وخزن بيانات الاعتماد
أنشئ أسلوب استدعاء
getClient()يرجعNewsSearchAPIImplعميل بحث جديد. أضف نقطة النهاية كمعلمة أولى لكائنNewsSearchAPIImplالجديد، وكائنServiceClientCredentialsجديد لتخزين بيانات الاعتماد.public static NewsSearchAPIImpl getClient(final String subscriptionKey) { return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/", new ServiceClientCredentials() { }); }لإنشاء
ServiceClientCredentialsالكائن، ما عليك سوى تجاوزapplyCredentialsFilter()الدالة. مررOkHttpClient.Builderإلى الأسلوب واستخدام أسلوب المنشئaddNetworkInterceptor()لإنشاء بيانات الاعتماد لاستدعاء مكتبة العميل.new ServiceClientCredentials() { @Override public void applyCredentialsFilter(OkHttpClient.Builder builder) { builder.addNetworkInterceptor( new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = null; Request original = chain.request(); // Request customization: add request headers. Request.Builder requestBuilder = original.newBuilder() .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey); request = requestBuilder.build(); return chain.proceed(request); } }); } });
أرسل طلب بحث وتلقَّه
أنشئ أسلوباً يستدعي
getClient()ويرسل طلب بحث إلى خدمة Bing News Search. قم بتصفية البحث باستخدام معلمات السوقوالعد، ثم اطبع معلومات حول نتيجة الأخبار الأولى: الاسم وعنوان URL وتاريخ النشر والوصف واسم الموفر والعدد الإجمالي للتطابقات المقدرة لبحثك.public static void newsSearch(String subscriptionKey) { NewsSearchAPIImpl client = getClient(subscriptionKey); String searchTerm = "Quantum Computing"; NewsInner newsResults = client.searchs().list(searchTerm, null, null, null, null, null, 100, null, "en-us", null, null, null, null, null, null, null); if (newsResults.value().size() > 0) { NewsArticle firstNewsResult = newsResults.value().get(0); System.out.println(String.format("TotalEstimatedMatches value: %d", newsResults.totalEstimatedMatches())); System.out.println(String.format("News result count: %d", newsResults.value().size())); System.out.println(String.format("First news name: %s", firstNewsResult.name())); System.out.println(String.format("First news url: %s", firstNewsResult.url())); System.out.println(String.format("First news description: %s", firstNewsResult.description())); System.out.println(String.format("First news published time: %s", firstNewsResult.datePublished())); System.out.println(String.format("First news provider: %s", firstNewsResult.provider().get(0).name())); } else { System.out.println("Couldn't find news results!"); } }أضف أسلوب البحث إلى
main()أسلوب لتنفيذ التعليمات البرمجية.public static void main(String[] args) { String subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; NewsSearchSDK.newsSearch(subscriptionKey); }
الخطوات التالية
استخدم البداية السريعة هذه لبدء البحث عن الأخبار باستخدام مكتبة عميل Bing News Search لـ JavaScript. على الرغم من Bing News Search لديها تطبيقREST API متوافق مع معظم لغات البرمجة، توفر مكتبة العميل وسيلة سهلة لدمج الخدمة في تطبيقاتك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
- أحدث نسخة من Node.js.
- Bing News Search SDK لـ JavaScript
- للتثبيت، ما عليك سوى التشغيل
npm install @azure/cognitiveservices-newssearch
- للتثبيت، ما عليك سوى التشغيل
- فئة
CognitiveServicesCredentialsمن الحزمة@azure/ms-rest-azure-jsلمصادقة العميل.- للتثبيت، قم بتشغيل
npm install @azure/ms-rest-azure-js
- للتثبيت، قم بتشغيل
أنشئ مورد Azure
ابدأ باستخدام Bing News Search API من خلال إنشاء أحد الموارد التالية لـ Azure:
- متوفر من خلال بوابة Azure لطالما لم تحذف المورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة وترقيتها لاحقاً إلي المستوى المدفوع الخاص بعملية الإنتاج.
- متوفر من خلال مدخل Azure إلى أن تقوم بحذف المورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
أنشئ وفعل التطبيق
أنشئ مثيلاً لـ
CognitiveServicesCredentials. أنشئ متغيرات لمفتاح اشتراكك ونقطة نهاية البحث ومصطلح البحث.const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials; let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY'); let search_term = 'Winter Olympics'أنشئ مثيلاً للعميل:
const NewsSearchAPIClient = require('@azure/cognitiveservices-newssearch'); let client = new NewsSearchAPIClient(credentials);
إرسال استعلام عن بحث
استخدم العميل للبحث باستخدام مصطلح الاستعلام، في هذه الحالة "دورة الألعاب الأولمبية الشتوية":
client.newsOperations.search(search_term).then((result) => { console.log(result.value); }).catch((err) => { throw err; });
عناصر طباعة التعليمات البرمجية result.value إلى وحدة التحكم دون تحليل أي نص. ستشمل النتائج، إن وجدت لكل فئة، ما يلي:
_type: 'NewsArticle'_type: 'WebPage'_type: 'VideoObject'_type: 'ImageObject'
الخطوات التالية
استخدم التشغيل السريع لبدء البحث عن الأخبار باستخدام مكتبة العميل الخاصة بـ Bing News Search لـ Python. على الرغم من أن Bing News Search لديها REST APIالذي يعد متوافقاً مع معظم لغات البرمجة، تقدم مكتبة العميل وسيلة سهلة لدمج الخدمة في التطبيقات الخاصة بك. يمكن العثور على التعليمات البرمجية المصدر لهذه النماذج على GitHub.
المتطلبات الأساسية
- Python 2.x أو 3.x
يوصى باستخدام بيئة افتراضية لتطوير Python الخاص بك. تثبيت البيئة الافتراضية وتفعيلها باستخدامvenv module. يجب تثبيت virtualenv لـ Python 2.7. يمكنك إنشاء البيئة الافتراضية مع:
python -m venv mytestenv
يمكنك تثبيت تبعيات مكتبة العميل الخاصة بـ Bing News Search مع هذا الأمر:
python -m pip install azure-cognitiveservices-search-newssearch
أنشئ مورد Azure
ابدأ باستخدام Bing News Search API من خلال إنشاء أحد الموارد التالية لـ Azure:
- متوفر من خلال بوابة Azure لطالما لم تحذف المورد.
- استخدم مستوى التسعير المجاني لتجربة الخدمة وترقيتها لاحقاً إلي المستوى المدفوع الخاص بعملية الإنتاج.
- متوفر من خلال مدخل Azure إلى أن تقوم بحذف المورد.
- استخدم نفس المفتاح ونقطة النهاية للتطبيقات الخاصة بك، عبر الخدمات المعرفية المتعددة.
إنشاء وتهيئة التطبيق
أنشئ ملف Python جديداً فيIDE المفضل لديك أو بيئة التطوير المتكاملة المفضلة أو editor وأضف المكتبات التالية. أنشئ متغيرات لمفتاح الاشتراك الخاص بك ومصطلح البحث الخاص بك.
from azure.cognitiveservices.search.newssearch import NewsSearchClient from msrest.authentication import CognitiveServicesCredentials subscription_key = "YOUR-SUBSCRIPTION-KEY" endpoint = "YOUR-ENDPOINT" search_term = "Quantum Computing"
تهيئة العميل وإرسال طلب
أنشئ مثيلاً لـ
CognitiveServicesCredentials.client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))إرسال استعلام بحث إلى News Search API API، تخزين الاستجابة.
news_result = client.news.search(query=search_term, market="en-us", count=10)
تحليل الاستجابة
إذا تم العثور على أي نتائج بحث، فاطبع نتيجة صفحة الويب الأولى:
if news_result.value:
first_news_result = news_result.value[0]
print("Total estimated matches value: {}".format(
news_result.total_estimated_matches))
print("News result count: {}".format(len(news_result.value)))
print("First news name: {}".format(first_news_result.name))
print("First news url: {}".format(first_news_result.url))
print("First news description: {}".format(first_news_result.description))
print("First published time: {}".format(first_news_result.date_published))
print("First news provider: {}".format(first_news_result.provider[0].name))
else:
print("Didn't see any news result data..")