Raw - الاشتراك في المقالات
يوفّر Raw WebSocket بديلًا خفيفًا ومبسّطًا لـ WebSocket المُثرى. فهو يسلّم بيانات المقال الأساسية في الوقت الفعلي دون مطابقة الرموز أو الإثراء بالذكاء الاصطناعي أو حل كيانات الشركات. وهذا يجعله مثاليًا لحالات الاستخدام التي تحتاج فيها إلى بيانات مقالات سريعة وأساسية دون عبء المعالجة المتقدّمة.
الفروق الرئيسية عن WebSocket المُثرى:
- نقطة النهاية:
wss://wss.finlight.me/raw(بدلًا منwss://wss.finlight.me) - لا بيانات أولية: على عكس WebSocket المُثرى، لا يرسل Raw WebSocket أحدث مقال مطابق عند الاتصال أو إعادة الاتصال. ستتلقّى فقط المقالات المنشورة حديثًا بعد الاتصال.
- لا إثراء بالذكاء الاصطناعي: تُسلَّم المقالات دون تحليل المشاعر أو مطابقة الشركات أو حل الرموز.
- معاملات مبسّطة: لا توجد معاملات
tickersأوcountriesأوincludeEntitiesأوextended.
نموذج المقال
يُرجِع Raw WebSocket نموذج مقال مبسّطًا بالحقول الأساسية فقط. لا تُضمَّن أي كيانات شركات أو إثراءات مُولَّدة بالذكاء الاصطناعي.
- Name
link- Type
- string
- Description
عنوان URL للمقال الكامل.
- Name
source- Type
- string
- Description
موقع المصدر. مثل
www.reuters.com
- Name
title- Type
- string
- Description
عنوان المقال.
- Name
summary- Type
- string
- Description
ملخّص المقال إن وُجد. يمكن أن يكون فارغًا (nullable).
- Name
publishDate- Type
- Date
- Description
تاريخ النشر كتاريخ ISO.
- Name
createdAt- Type
- Date
- Description
تاريخ الإنشاء الداخلي للمقال في نظام finlight كتاريخ ISO.
- Name
revisedDate- Type
- Date | null
- Description
تاريخ آخر مراجعة للمقال بعد النشر الأولي. يكون
nullعندما لا يُراجَع المقال قطّ. يظهر عند تفعيلincludeUpdatesومراجعة المقال.
- Name
isUpdate- Type
- boolean
- Description
يكون
trueعندما يُطلَق هذا التسليم بسبب تحديث للمقال بعد النشر. يظهر فقط عند تفعيلincludeUpdates.
- Name
language- Type
- string
- Description
رمز اللغة بصيغة ISO 639-1. مثل
en|de|fr
- Name
images- Type
- string[]
- Description
مصفوفة عناوين URL لصور المقال.
- Name
countries- Type
- string[]
- Description
مصفوفة رموز الدول بصيغة ISO 3166-1 alpha-2 التي تمثّل الدول المرتبطة بالمقال. مثل
["US", "GB", "DE"]. يمكن أن تكون فارغة.
- Name
categories- Type
- string[]
- Description
مصفوفة فئات المقال. القيم الممكنة:
markets|economy|business|politics|geopolitics|regulation|technology|energy|commodities|crypto|health|climate|security. يمكن أن تكون فارغة.
جلب المقالات
بعد الاتصال، ستتلقّى فقط المقالات المنشورة حديثًا التي تطابق معاييرك. ولا يُرسَل أي مقال أولي/تاريخي عند الاتصال.
عند الاشتراك، يمكنك تحديد المعاملات التالية لتصفية المقالات التي تتلقّاها:
- Name
query- Type
- string
- Description
استعلام البحث للعثور على المقالات ذات الصلة. يدعم التصفية على مستوى الحقول لـ
sourceوtitleوsummary. الاستعلامات المتقدمة
- Name
sources- Type
- string[]
- Description
التصفية حسب مصدر واحد أو عدّة مصادر. مثل
["www.reuters.com", "www.cnbc.com"]. راجع نقطة نهاية المصادر للقيم الصالحة.
- Name
excludeSources- Type
- string[]
- Description
يستبعد مصدرًا واحدًا أو عدّة مصادر. مثل
["www.reuters.com", "www.cnbc.com"]. راجع نقطة نهاية المصادر للقيم الصالحة.
- Name
language- Type
- string
- Description
التصفية حسب اللغة (ISO 639-1). القيمة الافتراضية هي
en، التي تُرجع الإنجليزية فقط وتستبعد اللغات الأخرى — راجع اللغة والتغطية.
- Name
includeUpdates- Type
- boolean
- Description
عند تفعيله، يُعاد تسليم المقالات المُحدَّثة مع
isUpdate=trueوطابع زمنيrevisedDate.
Request
import { FinlightApi } from 'finlight-client'
const client = new FinlightApi(
{
apiKey: 'YOUR_API_KEY', // Replace with your API key
},
{
takeover: true, // WebSocket options
},
)
client.rawWebsocket.connect(
{
query: 'Nvidia',
language: 'en',
sources: ['www.reuters.com', 'www.cnbc.com'],
},
(article) => {
console.log('New article received:', article)
},
)
Response
{
"link": "https://www.example.com/article1",
"source": "www.example.com",
"title": "Stock Market Hits New Highs",
"summary": "A brief summary of the article...",
"publishDate": "2023-10-01T12:34:56Z",
"createdAt": "2023-10-01T12:35:10Z",
"language": "en",
"images": [
"https://www.example.com/image1.jpg",
"https://www.example.com/image2.jpg"
],
"countries": ["US"],
"categories": ["markets"]
}
Response (includeUpdates: true)
{
"link": "https://www.example.com/article1",
"source": "www.example.com",
"title": "Stock Market Hits New Highs — Updated",
"summary": "An updated summary of the article...",
"publishDate": "2023-10-01T12:34:56Z",
"createdAt": "2023-10-01T12:35:10Z",
"revisedDate": "2023-10-02T08:00:00Z",
"isUpdate": true,
"language": "en",
"images": [
"https://www.example.com/image1.jpg"
],
"countries": ["US"],
"categories": ["markets"]
}
تصفية query على مستوى الحقول
يدعم Raw WebSocket التصفية على مستوى الحقول داخل المعامل query للحقول التالية:
source- التصفية حسب مصدر المقالtitle- التصفية حسب محتوى عنوان المقالsummary- التصفية حسب محتوى ملخّص المقال
أمثلة:
query=title:Nvidia
query=summary:earnings +title:Tesla
query=source:www.reuters.com -crypto
راجع دليل إنشاء الاستعلامات المتقدمة لمزيد من التفاصيل حول صياغة الاستعلام.
سلوك الاتصال
- المصادقة: يستخدم ترويسة
x-api-keyنفسها المستخدمة في WebSocket المُثرى. راجع أساسيات WebSocket لمزيد من التفاصيل. - Ping/Pong: تنطبق آلية إبقاء الاتصال حيًّا نفسها. أرسل رسائل
pingدورية للحفاظ على الاتصال. - مدة الاتصال: تخضع لحدّ الاتصال نفسه البالغ ساعتين. نفّذ منطق إعادة الاتصال وفقًا لذلك.
- لا بيانات أولية: على عكس WebSocket المُثرى، لا يُرجِع الاتصال أو إعادة الاتصال أحدث مقال مطابق. وتُسلَّم فقط المقالات المنشورة حديثًا بعد الاتصال.