Domanda

sto sviluppando un sito Web che, tra le altre cose, fornisce blogging tramite API Metaweblog. Ho ottenuto l'API a lavorare abbastanza bene con diversi clienti di blog, ma Windows Live Writer mi sta uccidendo.

Ho fatto una traccia di rete per catturare il traffico effettivo avanti e indietro. Ecco i risultati:

WLW chiede il mio blog URL, il nome utente e la password. L'URL è / item / list / tipo / blog / user / 1 / bloguser / 1, e fornisco questo.

Vedo WLW fare una richiesta HTTP per tale URL. Si ottiene una risposta. Quella risposta comprende sia RSD e wlwmanifest tag link.

La prossima richiesta da WLW è per / mwapi / RSD / bloguser / 1, che è l'URL corretto.

La risposta è la risposta 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 prossima richiesta da WLW è quello di / mwapi / index. Questo è il metodo chiamata a blogger.getUsersBlogs. La richiesta è:

.<?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 i periodi; quelli sono ritorni a capo. Sto prendendo questo da una traccia di rete.

La risposta dal server è anche in 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>.

Questo è corretto per me. Il BlogID è corretta, l'URL è corretto, e il nome del blog è corretto.

WLW poi ripete il metodo getUsersBlogs chiamata originale. Si ottiene una risposta identica.

WLW visualizza quindi, "una connessione è stato fatto per il tuo account tuttavia il server ha riferito che al momento non hanno un blog attivo. Assicurati che il tuo account con questo fornitore è in corso prima di procedere."

WLW ha fatto ulteriori richieste HTTP oltre a quelle che ho descritto qui.

Degli indizi di sorta quello che sto facendo di sbagliato? Ho assicurato che un file wlwmanifest.xml è disponibile, e in effetti qualsiasi richiesta di wlwmanifest.xml (ad esempio, /this/is/not/it/wlwmanifest.xml) sarà ancora tornare alla corretta file.

EDIT: ho capito che non tornavo un array da mio metodo getUsersBlogs. Quando ho cambiato che, la risposta HTTP dalla chiamata metodo 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>.

Questo sembra identica a quella descritta in http://msdn.microsoft. com / it-it / library / aa905665.aspx come risposta del campione. Ma, WLW visualizzato un errore - "riferimento oggetto non impostato su un'istanza di un oggetto." Anche in questo caso, i dati di risposta attuale non include i periodi -. Questo è solo come Network Monitor rappresenta ritorni a capo

Ho fatto chiamate di prova da un test harness e che sta funzionando bene con le risposte identiche. E, come ho detto, si sta lavorando con altri client di blogging. Aiuto.

È stato utile?

Soluzione

WLW, a quanto pare, è molto esigente circa l'attuazione MWA. Non ero capitalizzare uno dei nomi dei metodi in modo corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top