سؤال

أعمل حاليًا على مشروع بوابة للحصول على بيانات التقويم من عدة مواقع ويب (google، yahoo، Live/hotmail).المشكلة هي أن تطبيقنا يتطلب خدمة تحصل على بيانات التقويم من تلك المواقع.لقد تخلص فريقي بالفعل من تقويم Google وYahoo، ولكننا نواجه الآن مشكلة مع التقويم المباشر.

حتى الآن إليك ما حاولناه بالفعل وفشلنا فيه:

  1. يبدو الحصول على البيانات باستخدام طلب HTTP أمرًا مستحيلًا لأن http://login.live.com مؤمن بالكامل باستخدام جافا سكريبت.لقد أمضينا 3 أيام لفهم JS لتسجيل الدخول ولكن يبدو أن Microsoft أفضل منا بكثير :)
  2. بحثت عبر الإنترنت عن LIVE CONNECT API، ولكن الآن هناك طريقة لتسجيل الدخول ديناميكيًا (من خلال توفير اسم المستخدم/كلمة المرور) إلى MS Live.لا يمكننا استخدام زر تسجيل الدخول المباشر لأن عمليتنا تمت على طبقة خدمة واحدة.(أو ربما فاتني شيء ما؟)

هل هناك أي فرصة بالنسبة لي لإكمال هذه المهمة؟

أي مساعدة، دليل، خدعة سوف نقدر بشدة، وذلك بفضل

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

هل كانت مفيدة؟

المحلول

الإجابة هي لا!، لا يمكنك الحصول على التقويم/الأحداث من MS LIVE من خلال توفير البريد الإلكتروني/كلمة المرور لأن MS LIVE يستخدم OAUTH.

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

هنا هي الخطوة:

احصل على معرف عميل التطبيق الخاص بك

اذهب إلى: https://manage.dev.live.com/Applications/Index

إنشاء نموذج تسجيل الدخول

في التطبيق الخاص بالعميل، يمكنك إنشاء نموذج تسجيل دخول عن طريق إظهار عنصر تحكم في المتصفح، عنوان URL هو:

https://oauth.live.com/authorize?response_type=token&client_id=YOUR_APP_CLIENTID&scope=SCOPE&locale=en&redirect_uri=https://oauth.live.com/desktop&auth_redirect=true&wa=wsignin1.0

  • YOUR_APP_CLIENTID:معرف العميل الذي تحصل عليه من التسجيل في الخطوة الأولى.
  • نِطَاق:يجب ان يكون wl.calendars+wl.basic انظر المزيد عن الوثائق

وبعد أن يسمح المستخدم بالمصادقة، ستتم إعادة توجيه المتصفح إلى:

https://oauth.live.com/desktop#access_token=ACCESS_TOKEN
   &token_type=TOKEN_TYPE&expire=EXPIRE

هناك يمكنك استخراج ACCESS_TOKEN من هناك.

احصل على التقويم/الحدث

إذن أصبح تطبيق العميل الخاص بك يحتوي بالفعل على ACCESS_TOKEN، ثم قم بتمرير هذا إلى خدمتك للحصول على التقويم (تذكر أن هناك مهلة لـ ACCESS_TOKEN).يجب أن تقوم خدمتك بعد ذلك بإجراء مكالمة REST إلى:

https://apis.live.net/v5.0/me/calendars?access_token=ACCESS_TOKEN

أو

https://apis.live.net/v5.0/me/events?start_time=2012-10-01T00:00:00Z
     &end_time=2012-10-03T00:00:00Z&access_token=ACCESS_TOKEN

لمزيد من المعلومات راجع: http://msdn.microsoft.com/en-us/library/live/hh826523.aspx

حظ سعيد

نصائح أخرى

من موقع مايكروسوفت ....

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

لذلك أعتقد أن هذا هو المكان الذي يجب أن تذهب إليه وتنظر إليه..التقويمات (واجهة برمجة تطبيقات Live Connect);ونعم هناك عينات في C# كذلك.

شرح المفهوم...في الأساس تحتاج إلى استخدام public class LiveConnectClient المتوفر في نظام التشغيل Windows 8 لإنجاز ذلك.

using Microsoft.Live;  
using Microsoft.Live.Controls;

هي مساحات الأسماء التي تحتوي على المنطق الأساسي لعميل الاتصال المباشر والعمليات ذات الصلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top