Search code examples
autodiscoverywindows-live-writermetaweblog

windows live writer not detecting metaweblog api


I have a blogging platform that has support for windows live writer. I'm working on a new version (so quite a few changes made) and noticed that the wlw blogging api autodetection (site uses metaweblog api) stopped working and I can't find the reason why. Here's are the links for integration:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="/api/rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="/LiveWriterManifest.xml" />

(also tried with absolute urls)

here's the manifest:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
  <options>
    <clientType>MetaWeblog</clientType>
    <requiresHtmlTitles>No</requiresHtmlTitles>
    <requiresXHTML>Yes</requiresXHTML>
    <supportsNewCategories>Yes</supportsNewCategories>
    <supportsNewCategoriesInline>Yes</supportsNewCategoriesInline>
    <supportsPostAsDraft>Yes</supportsPostAsDraft>
    <supportsFileUpload>Yes</supportsFileUpload>
    <supportsExtendedEntries>Yes</supportsExtendedEntries>
    <supportsKeywords>Yes</supportsKeywords>
    <supportsAuthor>Yes</supportsAuthor>
    <supportsSlug>Yes</supportsSlug>
  </options>
</manifest>

and here's the rsd:

<?xml version="1.0" encoding="UTF-8" ?>
<rsd xmlns="http://archipelago.phrasewise.com/rsd" version="1.0">
    <service>
        <enginename>foo</enginename>
        <enginelink>http://www.example.org/</enginelink>
        <homepagelink>http://localhost:50700</homepagelink>
        <apis>
            <api name="MetaWeblog" blogid="1" preferred="true" apilink="http://localhost:50700/MetaWeblogAPI.ashx" />
        </apis>
    </service>
</rsd>

any ideas on why this doesn't work? From what I've been able to establish is that wlw doesn't even request the rsd page so probably there's something 'wrong' with the link tag.


Solution

  • Well, after further investigation I found the problem: the /api/rsd path required authentication and as I was logged in the browser (persistent cookie) I didn't notice that.

    After allowing unauthorized access to that path live writer can now detect the configuration automatically.