واجهات برمجة تطبيقات الشبكة الاجتماعية: بوابة الإنترنت إلى العالم الحقيقي

نشرت: 2022-03-11

لقد قطعت واجهات برمجة التطبيقات للشبكات الاجتماعية شوطًا طويلاً منذ أن أصدرت Google الإصدار الأول من واجهة برمجة تطبيقات YouTube في مايو 2008 وأصدر Facebook الإصدار الأول من واجهة برمجة التطبيقات Graph API في أبريل 2010. واليوم ، تمنحك واجهات برمجة التطبيقات هذه الفرصة للاستعلام عن منصات الشبكات الاجتماعية للمشاركات والمستخدمين والقنوات والبيانات الديموغرافية. حتى أنها تتيح لك إنشاء الخدمة الخاصة بك أو معرفة المزيد عن قاعدة المستخدمين الخاصة بك.

في هذه المقالة ، سوف ندرس الطرق التي يمكننا بها استخدام بعض واجهات برمجة التطبيقات للشبكات الاجتماعية الشهيرة:

  • Facebook (واجهة برمجة تطبيقات الرسم البياني والتسويق)
  • انستغرام
  • تويتر
  • موقع يوتيوب
  • بينتيريست

سنناقش أيضًا قيودها ، ونستكشف بعض الأدوات المفيدة المتاحة للاستخدام مع واجهات برمجة التطبيقات هذه. لاحقًا في المقالة ، سنلقي نظرة أيضًا على كيفية دمج واجهات برمجة التطبيقات هذه في أي تطبيق من تطبيقات ريلز.

واجهات برمجة تطبيقات الشبكة الاجتماعية: بوابة الإنترنت إلى العالم الحقيقي

استخدم واجهات برمجة تطبيقات الشبكة الاجتماعية للتعرف على المستخدمين بشكل أفضل مما يعرفون أنفسهم.
سقسقة

سأركز على واجهة برمجة تطبيقات شبكة اجتماعية واحدة في كل مرة وأشرح إمكانياتها وقيودها وأدواتها المتاحة. ستكون هناك مصفوفة مع واجهات برمجة التطبيقات المختلفة وخصائصها من أجل مقارنة أفضل لاحقًا في هذه المقالة.

من أجل استخدام واجهات برمجة التطبيقات ، ستحتاج أولاً إلى إعداد تطبيق يقوم بإنشاء استعلامات نيابة عن تطبيقك مع الطلبات المستندة إلى OAuth. سيقوم المستخدمون بالمصادقة على تطبيقك ويمكنك بعد ذلك الوصول إلى بياناتهم باستخدام رمز وصول المستخدم الناتج.

فيسبوك

تستخدم FQL (لغة استعلام Facebook) التي عفا عليها الزمن الآن لتكون لغة استعلام تشبه SQL يمكن استخدامها للوصول إلى جميع البيانات من Facebook.

أصدر Facebook الإصدار الأول من واجهة برمجة التطبيقات Graph API الخاصة به في أبريل 2010. أحدث إصدار وقت كتابة هذه المقالة هو 2.6 والذي تم تقديمه في 12 أبريل 2016. وهي واجهة برمجة تطبيقات تعتمد على HTTP منخفضة المستوى يمكن استخدامها للاستعلام البيانات وإنشاء المنشورات وحتى إنشاء حملات إعلانية آلية.

أدوات

يعد Graph API Explorer الأداة الأكثر استخدامًا عند العمل مع Facebook API. يتيح لك تنفيذ استعلامات Graph API في المتصفح وفحص النتائج: يمكنك استخدام أحد رموز الوصول لتطبيقك أو إنشاء واحد سريعًا باستخدام النطاقات المحددة.

قدرات

واجهة برمجة تطبيقات الرسم البياني هي واجهة برمجة تطبيقات تستند إلى REST تتيح لك إنشاء وتحديث وحذف كائنات لكل طلب HTTP على عقد معينة.

رمز وصول

لتشغيل استعلامات مقابل واجهة برمجة تطبيقات Graph ، تحتاج إلى رمز وصول يتم الحصول عليه بمجرد أن يأذن المستخدم بنجاح في تطبيقك. يجب أن يتم تخزين رمز الوصول بواسطة التطبيق الخاص بك.

النطاقات

تحدد النطاقات الإجراءات التي يمكن تنفيذها نيابة عن المستخدم. يطلب التطبيق نطاقات معينة عندما يأذن المستخدم في التطبيق. publish_actions نطاق النشر ، على سبيل المثال ، للتطبيق نشر منشورات نيابة عن المستخدم. يتيح نطاق البريد الإلكتروني للتطبيق قراءة البريد الإلكتروني للمستخدم. يتم سرد نظرة عامة كاملة على جميع النطاقات في الوثائق الرسمية.

تتطلب بعض النطاقات مثل publish_actions أو ads_management مراجعة بواسطة Facebook قبل إصدار التطبيق.

أمثلة

لتوضيح كيفية عمل Graph API ، سأوضح لك كيفية قراءة المنشورات وإنشاءها وتحديثها وحذفها باستخدام واجهة برمجة التطبيقات.

للحصول على مشاركاتك الخاصة ، يمكنك تنفيذ استعلام GET /me/posts . ستكون النتيجة سلسلة JSON مع قائمة بالمشاركات ، بما في ذلك رسالتها ، و created_time ، و id. يمكنك استخدام المعلمة pretty أو منسق JSON لجعل الاستجابة تبدو أقل تشوشًا.

للحصول على مزيد من البيانات حول مشاركاتك ، يمكنك توسيع الاستعلام باستخدام الحقول كمعلمات استعلام. على سبيل المثال ، الاستعلام me/posts?fields=reactions, picture ستعطيك الصورة صورة المنشور وردود أفعاله.

لإنشاء منشور ، يمكنك ببساطة إرسال إجراء POST مقابل موجز الحافة ، على سبيل المثال me/feed ، مع معلمات مثل message: hello world . ستعيد واجهة برمجة تطبيقات الرسم البياني كائن JSON بمعرف المنشور الذي تم إنشاؤه. يمكنك بعد ذلك عرض المنشور على العنوان http://facebook.com/[post_id] .

لتحديث منشور ، يمكنك إرسال طلب POST إلى عقدة المنشور مع الحقول المراد تحديثها كمعلمات ؛ على سبيل المثال ، /[post_id] ومعلمات مثل Message: lorem ipsum . سيتم إرجاع مؤشر نجاح بقيمة صواب أو خطأ.

لحذف منشور ، يمكنك ببساطة إجراء طلب حذف للعقدة باستخدام معرف المنشور (على سبيل المثال ، /[post_id] ). ستكون القيمة المعادة كائن JSON بقيمة نجاح صحيحة أو خاطئة.

يتوفر نظرة عامة كاملة على جميع العقد والإجراءات في مرجع واجهة برمجة تطبيقات الرسم البياني.

واجهة برمجة تطبيقات التسويق

تستحق واجهة برمجة تطبيقات التسويق إشارة خاصة لأنها أداة قوية لإدارة إعلانات Facebook والحصول على رؤى إعلانية من خلال تطبيقك.

وهي تعمل بنفس الطريقة التي تعمل بها طرق واجهة برمجة تطبيقات Graph الأخرى. ومع ذلك ، فأنت بحاجة إلى نطاق ads_management من أجل الوصول إلى إعلانات المستخدم. يحتاج Facebook أيضًا إلى مراجعة تطبيقك قبل أن تتمكن من نشره.

اختبارات

بمجرد إنشاء التطبيق الخاص بك ، يكون في وضع التطوير ويكون مرئيًا تلقائيًا في لوحة معلومات التطبيق (على سبيل المثال ، https://developers.facebook.com/apps/ ).

في وضع التطوير ، يمكن للمشرفين والمطورين والمختبرين فقط الوصول إلى تطبيقك. يمكنك إضافة مختبرين ومسؤولين في قسم الأدوار في لوحة تحكم التطبيق.

عملية الاستعراض

عند إضافة أذونات معينة ، يحتاج Facebook إلى مراجعة تطبيقك قبل أن تتمكن من نشره. يتم تحديد عملية المراجعة من خلال هذه المجموعة من المبادئ التوجيهية.

لإرسال عناصر معينة للمراجعة ، يمكنك ببساطة إضافتها في قسم مراجعة التطبيق في لوحة تحكم التطبيق. سيرشدك Facebook بعد ذلك خلال عملية المراجعة وسيتم تنبيهك بمجرد الموافقة على تطبيقك.

القيود والحلول

حدود السعر

يمكن لأي تطبيق إجراء 200 مكالمة في الساعة لكل مستخدم بشكل إجمالي. إذا وصلت إلى هذا الحد ، فستؤدي استدعاءات واجهة برمجة التطبيقات إلى حدوث خطأ.

البحث عن المشاركات في الفيسبوك

يقيد Facebook البحث عن المنشورات والعلامات على Facebook من خلال Graph API و FQL. ومع ذلك ، يمكنك استخدام Google Search API للبحث عن منشورات Facebook العامة ثم استخدام معرف النشر في عنوان URL لاسترداد مزيد من المعلومات حول منشورات محددة من خلال Graph API.

الحصول على بيانات الجمهور المخصصة

تعتبر Audience Insights على Facebook أداة بحث قوية لمعرفة المزيد عن جمهور معين بناءً على الاهتمامات أو التركيبة السكانية أو السمات الأخرى (على سبيل المثال ، مجموعة من عناوين البريد الإلكتروني).

ومع ذلك ، لم أجد طريقة لإنشاء رؤى للجمهور تلقائيًا من خلال واجهة برمجة تطبيقات الإعلان. أخبرنا في التعليقات إذا كان لديك أي أفكار أو اقتراحات إبداعية لهذا الغرض.

انستغرام

توضيح Instagram API

تم إصدار Instagram API لأول مرة في أبريل 2014 ويسمح لك بإنشاء تطبيقات تحلل مشاركات المستخدم وتساعد المستخدمين على إدارة منشوراتهم الخاصة.

أدوات

نظرًا لأنه تم إهمال وحدة تحكم API بواسطة Instagram في وقت هذه المقالة ، فإنني أوصي باستخدام Apigee لأغراض الاختبار في متصفحك.

قدرات

Instagram API هي واجهة برمجة تطبيقات تستند إلى REST. يتم وصف جميع نقاط النهاية الخاصة به في وثائقهم الرسمية.

رمز وصول

لتشغيل استعلامات مقابل واجهة برمجة تطبيقات Instagram ، فأنت بحاجة إلى رمز وصول يتم الحصول عليه بمجرد أن يأذن المستخدم في تطبيقك. لكي يتلقى المستخدم رمز وصول ، يجب توجيهه إلى عنوان URL الخاص بالتصريح الخاص بتطبيقك. سيعيد الخادم بعد ذلك توجيه المستخدم بعد تفويض تطبيقك وستتمكن بعد ذلك من قراءة الرمز المميز.

النطاقات

يمكن أن يطلب تطبيقك أذونات مختلفة. على سبيل المثال ، يحدك "أساسي" من قراءة معلومات ملف تعريف المستخدم والوسائط. يتيح لك "public_content" قراءة أي ملف تعريف عام ووسائط نيابة عن المستخدم.

أمثلة

لتوضيح كيفية عمل Instagram API ، سأستعرض بعض الأمثلة بناءً على نقطة نهاية الوسائط https://api.instagram.com/v1/media/popular .

تقوم نقطة النهاية هذه بإرجاع الوسائط الشائعة حاليًا من Instagram إذا تم تمرير رمز وصول كمعامل. ستكون النتيجة مجموعة منشورات بتنسيق JSON تحتوي ، لكل منها ، على معرّف الوسائط الخاص بها ، ورابط لصورتها ، وإبداءات الإعجاب ، والتعليقات ، والمستخدم الذي نشرها ، وبعض السمات الأخرى.

يمكنك استخدام apigee للتجول ومعرفة المزيد حول نقاط نهاية API ومعلماتها.

اختبارات

يبدأ كل تطبيق جديد يتم إنشاؤه على نظام Instagram الأساسي في وضع الحماية. هذه بيئة وظيفية بالكامل تتيح لك اختبار نقاط نهاية واجهة برمجة التطبيقات المتاحة للجمهور قبل إرسال تطبيقك للمراجعة.

لاختبار تطبيقك ، ما عليك سوى إنشاء إصدار مرحلي وتشغيل جميع الاستعلامات من خلال هذا الإصدار بدلاً من الإصدار المباشر الذي حصل على المراجعة.

عملية الاستعراض

يمكن للتطبيقات في وضع الحماية استخدام أي نقطة نهاية لواجهة برمجة التطبيقات ، ولكنها مقيدة بعدد محدود من المستخدمين والوسائط. إنها آلية رائعة لتطوير واختبار التطبيق.

لبدء البث المباشر والوصول إلى جميع محتويات Instagram ، ستحتاج إلى إرسال طلبك للمراجعة. بمجرد المراجعة ، ستتمكن فقط من طلب النطاقات للمستخدمين الذين تمت الموافقة على تطبيقك من أجلهم.

القيود والحلول

التحليل الديموغرافي

في وقت كتابة هذا المقال ، لا توجد طريقة للحصول على معلومات حول عمر المستخدمين أو جنسهم أو اهتماماتهم ، لأن Instagram لا يزودك بهذه المعلومات.

من أجل الحصول على بيانات ديموغرافية حول المتابعين أو قائمة مستخدمي Instagram ، ستحتاج إلى تكرارها جميعًا ومحاولة تحديد عمرهم وجنسهم أو اهتماماتهم بناءً على متابعيهم أو المعلومات المقدمة في سيرتهم الذاتية.

قد يكون حل البيانات الضخمة الجيد لهذه المشكلة خدمة قيمة لبعض الشركات.

حدود السعر

يتم التحكم في جميع حدود الأسعار على منصة Instagram من خلال رمز الوصول في نافذة منزلقة مدتها ساعة واحدة. التطبيقات الحية لها حدود معدل أعلى من التطبيقات في وضع الحماية. يبلغ حد السعر العالمي لتطبيق مباشر حاليًا 5000 مكالمة في الساعة.

تويتر

تم إصدار Twitter API لأول مرة في سبتمبر 2006. إنها واجهة برمجة تطبيقات REST عامة توفر وصولاً للقراءة والكتابة إلى بيانات Twitter. يتم تنفيذ المصادقة باستخدام OAuth. الردود بتنسيق JSON.

أدوات

يحتوي Twitter على أداة وحدة تحكم API مدعومة من apigee والتي يمكن استخدامها لاختبار الطلبات في المتصفح.

قدرات

تتيح لك واجهة برمجة تطبيقات REST الحصول على تغريدات المستخدم والمتابعين والأشخاص المتابعين. يمكنك أيضًا البحث عن علامات التصنيف في التغريدات الأخرى.

رمز وصول

يتيح لك Twitter إنشاء تطبيقات يمكن للمستخدمين المصادقة عليها مقابل رمز وصول. نموذج المصادقة هو OAuth.

النطاقات

هناك إذنان فقط يجب تعيينهما في صفحة إعداد التطبيق: للقراءة فقط والقراءة والكتابة. يتيح لك هذا الأخير إنشاء تغريدات وتنفيذ إجراءات نشر أخرى نيابة عن المستخدم.

أمثلة

لتوضيح استخدام Twitter API ، سأقوم باسترداد تغريدات المستخدم المصرح له. والنتيجة هي مصفوفة JSON تحتوي على صور التغريدة والمفضلات والتغريدات وعناوين url وتاريخ الإنشاء والسمات الأخرى. استخدم Apigee للتجول ومعرفة المزيد عن نقاط نهاية API ومعلماتها.

عملية الاختبار والمراجعة

لا توجد حاليًا عملية مراجعة أو وضع اختبار متاح لواجهة برمجة تطبيقات Twitter.

القيود والحلول

التحليل الديموغرافي

لا توجد حاليًا طريقة سهلة للحصول على البيانات الديموغرافية من متابعي Twitter لشخص ما. سيكون نهج القوة الغاشمة هو تصفح كل متابع ومحاولة الحصول على البيانات من خلال حساباتهم الحيوية والشبكات الاجتماعية المرتبطة.

يمكنك بعد ذلك وضع المزيد من الافتراضات بناءً على بيانات المتابعين التي تم جمعها من خلال تحليل البيانات. هناك طريقة أخرى للحصول على مزيد من الأفكار وهي من خلال منصة واجهة برمجة التطبيقات (API) للمؤسسات المدفوعة من تويتر GNIP. من بين أشياء أخرى ، يتيح لك إنشاء جماهير والحصول على معلومات حول هؤلاء من خلال واجهة برمجة التطبيقات. API حاليا في مرحلة تجريبية.

حدود السعر

يضع Twitter حدودًا للأسعار على أساس كل مستخدم وعلى أساس 15 دقيقة. إذا كان التطبيق الخاص بك يحتوي على العديد من الرموز المميزة ، فيمكنك ببساطة تبديل الرموز المميزة للعمليات العامة لتجنب الوصول إلى الحد الأقصى.

موقع يوتيوب

يوتيوب API التوضيح

تم تقديم YouTube Data API لأول مرة في يناير 2013. وهي تتيح لك إضافة ميزات YouTube إلى تطبيقك ، والبحث عن المحتوى ، وتحليل الخصائص الديمغرافية لقناة YouTube. إنها OAuth ، واجهة برمجة تطبيقات REST قائمة على الرمز المميز والتي تعرض استجابات JSON.

أدوات

يتيح لك API Explorer اختبار الطلبات غير المصرح بها والمصرح بها. يمكنك تشغيل الطلبات من المستعرض الخاص بك مقابل نقاط النهاية المتوفرة.

قدرات

من بين أشياء أخرى ، يمكنك العمل مع الأنشطة والمحادثات والبث المباشر وقوائم التشغيل والقنوات ومقاطع الفيديو والاشتراكات. تتطلب منك معظم نقاط النهاية الترخيص بحساب YouTube.

رمز وصول

تدعم YouTube Data API بروتوكول OAuth 2.0 للسماح بالوصول إلى بيانات المستخدم الخاصة. بمجرد أن يتم السماح للمستخدم في التطبيق الخاص بك ، سيتم إعادة توجيهه إلى التطبيق الخاص بك حيث يجب حفظ رمز الوصول.

لاستخدام ترخيص OAuth 2.0 ، يلزمك أولاً الحصول على بيانات اعتماد التفويض في وحدة تحكم مطوري Google.

النطاقات

تدعم YouTube Data API حاليًا النطاقات التالية:

  • فرض SSL - إدارة حساب youtube الخاص بك ولكن فقط عبر اتصال SSL.
  • افتراضي - إدارة حساب YouTube الخاص بك. هذا النطاق مطابق وظيفيًا لنطاق youtube.force-ssl ولكنه لا يتطلب اتصال SSL.
  • للقراءة فقط - اعرض حسابك على YouTube.
  • تحميل - تحميل مقاطع فيديو YouTube وإدارة مقاطع فيديو YouTube الخاصة بك.
  • تدقيق قناة الشريك - استرداد المعلومات التي تستخدمها الشبكات متعددة القنوات كمعايير لقبول أو رفض قناة في شبكتها.

أمثلة

كمثال على استخدام Youtube Data API ، استعلامات الطلب التالية لمقاطع الفيديو التي تحتوي على "ترميز" في العنوان والوصف:

 https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}

والنتيجة هي كائن JSON يحتوي على العنوان والوصف ومعرف الفيديو ومعرف القناة. يمكنك استخدام الأخير لمعرفة المزيد عن القناة.

معلمة part مطلوبة لأي طلب API يقوم بإرجاع مورد معين. تحدد المعلمة خصائص الموارد التي يجب تضمينها في استجابة API. على سبيل المثال ، يحتوي مورد الفيديو على الأجزاء التالية: مقتطف ، تفاصيل المحتوى ، تفاصيل الملف ، المشغل ، تفاصيل المعالجة ، تفاصيل التسجيل ، الإحصائيات ، الحالة ، الاقتراحات ، تفاصيل الموضوع.

تختلف جميع المعلمات الأخرى ، باستثناء مفتاح API ، من استدعاء إلى آخر. اقرأ المزيد عنها في الدليل المرجعي لواجهة برمجة التطبيقات.

بينتيريست

تم إطلاق Pinterest API في البداية في أبريل 2015. إنها واجهة برمجة تطبيقات RESTful توفر الوصول إلى بيانات Pinterest الخاصة بالمستخدم ، مثل لوحاتهم ودبابيسهم ومتابعيهم والمزيد. تستخدم Pinterest API OAuth وتسمح بأذونات القراءة والكتابة عند التفاعل مع محتوى المستخدم.

أدوات

مثل الآخرين ، يوفر Pinterest مستكشف API لاختبار نقاط النهاية الخاصة بهم وتشغيل الاستعلامات ضدهم. يمكنك إلقاء نظرة على جميع أدواتهم هنا.

قدرات

تسمح لك Pinterest REST API بإنشاء دبابيس ولوحات واستعلام عن بيانات Pinterest باستخدام OAuth.

رمز وصول

يستخدم Pinterest OAuth 2.0 لمصادقة الطلبات بين تطبيقك والمستخدمين. يجب إجراء جميع الطلبات عبر HTTPS.

النطاقات

تحدد النطاقات ما يمكن أن يفعله التطبيق نيابة عن المستخدم. تستخدم Pinterest النطاقات التالية:

  • none (يجب معرفة المعرف): استخدم طريقة GET في ملف تعريف المستخدم ، واللوحة وتفاصيل الدبوس ، والدبابيس الموجودة على اللوحة.
  • read_public : استخدم طريقة GET على دبابيس المستخدم واللوحات والإعجابات.
  • write_public : استخدم طرق PATCH و POST و DELETE في دبابيس ولوحات المستخدم.
  • read_relationships : استخدم طريقة GET مع المتابعين والمتابعين للمستخدم (على المنتديات والمستخدمين والاهتمامات).
  • write_relationships : استخدم طرق PATCH و POST و DELETE على متابعي المستخدم ومتابعيه (على المنتديات والمستخدمين والاهتمامات).

أمثلة

لتوضيح استخدام Pinterest API ، سأوضح كيفية قراءة أحدث دبابيس المستخدم:

https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at سيعيد دبابيس المستخدم مع المعرف والرابط والملاحظة ، url ، الإعجابات ، و repins.

عملية الاختبار والمراجعة

التطبيقات في البداية في وضع التطوير ويجب إرسالها للمراجعة قبل إصدارها في وضع الإنتاج.

القيود والحلول

التحليل الديموغرافي

لا توجد طريقة شائعة للحصول على بيانات التركيبة السكانية من اللوحة. ومع ذلك ، يمكنك محاولة الحصول على متابعين للوحة ومعلومات عنهم من سيرتهم الذاتية وروابط إلى حسابات شبكات اجتماعية أخرى. قد يكون حل البيانات الضخمة عبر اتصالات المستخدم الشائعة أيضًا احتمالًا.

ابحث عن دبابيس

لا توجد حاليًا طريقة للبحث عن دبابيس بعلامات أو كلمات رئيسية معينة من خلال واجهة برمجة التطبيقات. يمكنك تجاوز هذا القيد باستخدام Google Custom Search API للبحث عن النتائج على دبابيس Pinterest فقط وجمع معرف الدبوس من خلال عنوان URL. يمكن بعد ذلك استخدام المعرف للحصول على معلومات حول الدبوس من خلال API.

حدود السعر

يُسمح لكل تطبيق (بمعرف تطبيق فريد) بـ 1000 مكالمة لكل نقطة نهاية في الساعة لكل رمز مميز فريد للمستخدم.

تُرجع كل استجابة لواجهة برمجة التطبيقات رأسًا يمنحك تحديثًا حول حدود المعدل. X-Ratelimit-Limit هو الحد الأقصى للسعر لهذا الطلب المحدد ، و X-Ratelimit-Remaining هو عدد الطلبات التي تركتها في نافذة 60 دقيقة.

إذا تجاوزت حد المعدل الخاص بك لنقطة نهاية معينة ، فستحصل على رمز خطأ 429 "طلبات كثيرة جدًا".

مقارنة بين واجهات برمجة تطبيقات الشبكة الاجتماعية

الإصدار OAuth شكل التركيبة السكانية
فيسبوك الإصدار 2.6
الإصدار الأولي: أبريل 2010
OAuth 2 طلبات REST مع استجابات JSON أيد
انستغرام الإصدار 1
الإصدار الأولي: أبريل 2014
OAuth 2 طلبات REST مع استجابات JSON غير مدعوم
تويتر الإصدار 1.1
الإصدار الأولي: سبتمبر 2006
بروتوكول OAuth 1 طلبات REST مع استجابات JSON مدعوم فقط مع GNIP
موقع يوتيوب v3
الإصدار الأولي: يناير 2013
OAuth 2 طلبات REST مع استجابات JSON أيد
بينتيريست الإصدار 1
الإصدار الأولي: أبريل 2015
OAuth 2 طلبات REST مع استجابات JSON غير مدعوم

تطبيق تجريبي مع Devise

أصبح دمج واجهات برمجة التطبيقات هذه في تطبيقاتك الجديدة أو الحالية ، بفضل عدد كبير من حزم API للشبكات الاجتماعية والمكتبات ، أسهل من أي وقت مضى. تحتوي معظم الأنظمة الأساسية والأطر الحديثة على مكتبات تابعة لجهات خارجية تم اختبارها بمرور الوقت والتي توحد حتى جانب المصادقة كل واجهات برمجة التطبيقات هذه في مكتبة واحدة ذات بنية إضافية أنيقة.

رسم توضيحي لواجهة برمجة تطبيقات الشبكة الاجتماعية

بالنسبة لهذه المقالة ، سوف نلقي نظرة على كيفية قيام Devise ، جوهرة روبي ، بعمل هذا بشكل أنيق للغاية لتطبيقات ريلز. تعد Devise مكتبة مصادقة مرنة تستند إلى Warden التي تنفذ المصادقة والتسجيل وتسجيل الدخول وتخزين البيانات لموفري تسجيل دخول متعددين. إذا كنت أكثر من شاب أمامي وترغب في التحقق من شيء مشابه لـ AngularJS ، فقم بإلقاء نظرة على هذه المقالة.

ابتكار ، مثل معظم مكتبات هذه الفئة ، لا يأتي مدمجًا مع دعم أي من واجهات برمجة التطبيقات للشبكات الاجتماعية المذكورة أعلاه. يتم توفير الدعم لكل من واجهة برمجة تطبيقات الشبكات الاجتماعية هذه من خلال جواهر إضافية. تتوفر الأحجار الكريمة التالية لمصادقة ريلز التي تغطي الموفرين الخمسة الذين تمت مناقشتهم في هذه المقالة:

 gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
أحد أفضل الأشياء في ريلز هو أن هناك العديد من المكونات الإضافية التي كتبها مجتمع المصدر المفتوح. يتم توزيع هذه الأحجار الكريمة. تم إدراج هذه الجواهر المدرجة ضمن ملف التكوين المركزي ، بواسطة Bundler.

نظرًا لأن هذه توفر فقط المصادقة والتسجيل وتسجيل الدخول والتخزين لكل من هؤلاء الموفرين ، فسنحتاج أيضًا إلى الحصول على الأحجار الكريمة التالية لعملاء API الفعليين:

 gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api

Omniauth والمصادقة

لكي يقوم المستخدم بتفويض تطبيقك مع المزود الخاص بك ، يمكنك ببساطة توفير رابط بالمسار التالي:

 omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...

من أجل الرد على رد الاتصال بعد مصادقة المستخدم ، يمكنك تحديد OmniauthCallbacksController بالنطاقات كوظائف مثل:

 class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end

هذا هو المكان المناسب لإضافة نموذج مصادقة جديد مع الرمز المميز والبيانات إلى تطبيقك:

 authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end

إجراء مكالمات API

فيما يلي مثال على كيفية استخدام Koala للاستعلام عن Facebook API. يعمل باقي المزودين بشكل مشابه إلى حد ما ويتم توثيقهم في README الخاص بالجوهرة.

هذه هي الطريقة التي تحصل بها على بيانات المستخدم الخاصة بك باستخدام Koala:

 authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")

يمكنك بعد ذلك استخدام نتيجة JSON التي تعرضها واجهة برمجة التطبيقات. كود المصدر لهذا التطبيق التجريبي متاح على GitHub.

يتم إحتوائه

توفر لك واجهات برمجة التطبيقات للشبكات الاجتماعية أداة قوية للاستعلام عن مجموعة البيانات الكبيرة للشبكات الاجتماعية وجمع البيانات الضخمة لتطبيقك. يمكنك إنشاء خدمة فوق واجهات برمجة التطبيقات هذه أو استخدامها لتحسين تطبيقك الخاص ورؤى المستخدم.

تسهل ريلز والأحجار الكريمة المتاحة دمج واجهات برمجة التطبيقات هذه في تطبيق ريلز الخاص بك والاستعلام عن الواجهات بطبقة تجريد بين تطبيقك وواجهة برمجة التطبيقات.