¿Por qué no es trabajo de Windows Live escritor con el profesional de la API MetaWeblog?

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy desarrollando un sitio Web que, entre otras cosas, proporciona los blogs a través de la API MetaWeblog. He conseguido el trabajo API bastante bien con varios clientes en el blog, pero Windows Live Writer me está matando.

He hecho un seguimiento de red para capturar el tráfico real de ida y vuelta. He aquí los resultados:

WLW pide mi blog URL, nombre de usuario y contraseña. La URL es / artículo / lista / tipo / blog / usuario / 1 / bloguser / 1, y proporcionar esto.

Veo WLW hacer una petición HTTP para ese URL. Se obtiene una respuesta. Que incluye tanto la respuesta RSD y wlwmanifest etiquetas de enlace.

La siguiente solicitud de WLW es para / mwapi / rsd / bloguser / 1, que es la dirección URL correcta.

La respuesta es la respuesta 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>

La siguiente solicitud de WLW es / mwapi / index. Este es el llamado método para blogger.getUsersBlogs. La solicitud es:

.<?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>

Perdona los períodos; esos son retornos de carro. Estoy agarrando esto desde una traza de red.

La respuesta del servidor es también en 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>.

Este es correcta para mí. El blogid es correcta, la URL es correcta, y el nombre del blog es correcta.

WLW continuación, repite el método original de getUsersBlogs llamada. Se pone una respuesta idéntica.

WLW muestra entonces, "Una conexión exitosa se hizo a su cuenta sin embargo, el servidor informa de que actualmente no tiene un blog activo. Por favor asegúrese de que su cuenta con este proveedor es actual antes de continuar."

WLW ha hecho ninguna solicitud HTTP más allá de los que yo he descrito aquí.

¿Pistas en absoluto lo que estoy haciendo mal? Me ha asegurado que un archivo wlwmanifest.xml está disponible, y de hecho cualquier solicitud de wlwmanifest.xml (por ejemplo, /this/is/not/it/wlwmanifest.xml) seguirá siendo devolver la correcta archivo.

EDIT: Me di cuenta que no estaba volviendo una matriz desde mi método getUsersBlogs. Cuando cambié de eso, la respuesta HTTP desde la llamada al método era:

.<?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>.

Esto parece idéntico a lo que se describe en http://msdn.microsoft. com / es-es / library / aa905665.aspx como una respuesta de la muestra. Pero, WLW muestra un error - "Referencia a objeto no establecida como instancia de un objeto." Una vez más, los datos reales de respuesta no incluye los períodos -. Así es como Monitor de red representa retornos de carro

He hecho llamadas de prueba de un instrumento de prueba y está trabajando muy bien con las respuestas idénticas. Y, como he dicho, que está trabajando con otros clientes de blogs. Ayuda.

¿Fue útil?

Solución

WLW, al parecer, es muy exigente con la implementación MWA. No estaba capitalizando uno de los nombres de los métodos correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top