لماذا لا يعمل Windows Live Conster مع مزود Metaweblog API الخاص بي؟

StackOverflow https://stackoverflow.com/questions/1786156

  •  21-09-2019
  •  | 
  •  

سؤال

أقوم بتطوير موقع ويب ، من بين أشياء أخرى ، يوفر التدوين عبر Metaweblog API. لقد حصلت على واجهة برمجة التطبيقات تعمل بشكل جيد مع العديد من عملاء المدونة ، لكن Windows Live Conster يقتلني.

لقد قمت بتتبع الشبكة لالتقاط حركة المرور الفعلية. ها هي النتائج:

يسأل WLW عن عنوان URL الخاص بي ، واسم المستخدم ، وكلمة المرور. عنوان URL هو/عنصر/قائمة/نوع/مدونة/مستخدم/1/bloguser/1 ، وأنا أقدم هذا.

أرى WLW تقديم طلب HTTP لعنوان URL هذا. يحصل على استجابة. يتضمن هذا الاستجابة كل من علامات الارتباط RSD و WlwManifest.

الطلب التالي من WLW هو لـ/MWAPI/RSD/Bloguser/1 ، وهو عنوان URL الصحيح.

الاستجابة هي استجابة metaweblog RSD:

<?xml version="1.0" encoding="UTF-8"?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Cahoots2</engineName>   
<engineLink>http://sourceforge.net/projects/cahoots/</engineLink>  
<homePageLink>http://10.0.1.39:8888</homePageLink>
<apis>
  <api name="MetaWeblog" blogID="1" preferred="true" apiLink="http://10.0.1.39:8888/mwapi/index" />
 </apis>
</service>
</rsd>

الطلب التالي من WLW هو TO /MWAPI /الفهرس. هذه هي استدعاء الطريقة إلى blogger.getusersblogs. الطلب هو:

.<?xml version="1.0" encoding="utf-8"?>..
<methodCall>.. <methodName>blogger.getUsersBlogs</methodName>.. 
<params>..  <param>..   <value>..
<string>ffffffabffffffce6dffffff93ffffffac29ffffffc9fffffff826ffffffdeffffffc9ffffffe43c0b763036ffffffa0fffffff3ffffffa963377716</string>..
</value>..
</param>..
<param>..
<value>..
<string>CommunityAdmin</string>..
</value>..
</param>..
<param>..
<value>..
<string>password</string>..
</value>..
</param>.. </params>..</methodCall>

سامح الفترات. هذه عوائد النقل. أنا أمسك بهذا من أثر الشبكة.

الاستجابة من الخادم هي أيضا في XML:

.<?xml version="1.0" encoding="UTF-8"?>.<methodResponse><params><param><value>
<struct><member><name>blogid</name><value><int>1</int>
</value></member><member><name>url</name><value>
<string>http://10.0.1.39:8888/item/list/type/blog/user/1/bloguser/1</string>
</value></member><member><name>blogname</name><value>
<string>CommunityAdmin @ Cahoots!</string></value></member></struct></value>
</param></params></methodResponse>.

هذا يبدو صحيحا بالنسبة لي. المدونة صحيحة ، وعنوان URL صحيح ، واسم المدونة صحيح.

WLW ثم يكرر استدعاء طريقة getUsersblogs الأصلية. يحصل على استجابة متطابقة.

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

لم تقدم WLW طلبات HTTP أخرى تتجاوز تلك التي وصفتها هنا.

أي أدلة على الإطلاق ما أفعله خطأ؟ لقد تأكد من أن ملف wlwmanifest.xml متاح ، وفي الواقع أي سيظل طلب wlwmanifest.xml (على سبيل المثال ، /this/is/not/it/wlwmanifest.xml) إرجاع الملف الصحيح.

تحرير: أدركت أنني لم أعود صفيفًا من طريقة getUsersblogs الخاصة بي. عندما غيرت ذلك ، كانت استجابة HTTP من استدعاء الطريقة:

.<?xml version="1.0" encoding="UTF-8"?>.<methodResponse><params><param><value><array><data><value>
<struct><member><name>blogid</name><value><int>1</int></value></member>
<member><name>url</name><value>
<string>http://10.0.1.39:8888/item/list/type/blog/user/1/bloguser/1</string>
</value></member><member><name>blogname</name><value>
<string>CommunityAdmin @ Cahoots!</string></value></member></struct></value>
</data></array></value></param></params></methodResponse>.

هذا يبدو مطابقًا لما هو موصوف في http://msdn.microsoft.com/en-us/library/aa905665.aspx كاستجابة عينة. ولكن ، عرض WLW خطأ - "لم يتم تعيين مرجع الكائن على مثيل لكائن." مرة أخرى ، لا تتضمن بيانات الاستجابة الفعلية الفترات - وهذا هو كيف يمثل شاشة الشبكة عائدات النقل.

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

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

المحلول

يبدو أن WLW أمر صعب الإرضاء حول تطبيق MWA. لم أكن أستفيد من أحد أسماء الأسلوب بشكل صحيح.

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