The Yahoo! Solution - The RSS Blog
Really Simple Syndication
Copyright 2003-4 Randy Charles Morin
The RSS Blog
<< Previous Main Next >>
Tue, 18 Jan 2005 23:40:18 GMT
The Yahoo! Solution

It works! I wrote a Universal Subscription Mechanism client for My Yahoo.  It was surprisingly easier and better than I thought. You either need the Atom link construct extension of USM or auto-discovery via the channel/link element. It works with any RSS file that responds with applicaton/rss+xml, application/rdf+xml or application/atom+xml Content-Type. Sorry, my blog uses text/xml. But you can test subscribing to the RSS Blog via this URL. Download the Yahoo! USM (Save Target As...) to Program Files or something like that. Run it once to self register. Click away. Click on those orange chicklets for subscription with My Yahoo! You don't need add to My Yahoo! buttons.

The code usm.cs and discovery.cs.

Reader Comments Subscribe

Hope this comes across as constructive.  I'm producing my own client and thought you might appreciate some observations.

Wouldn't it be better to do some more work with the <link ...> tag.  Since that contains 'rel' and 'type' attributes you would save the RSS page read in your AutoDiscover routine.  It would also eliminate reads of totally inapropriate pages (when run against your own page it starts by looking up your CSS page)?  Or did I miss something?

I suspect the code doesn't work if you use it with a secured feed or if the user has to go through a proxy client.  FWIW I'd suggest you emphasise the importance of implementing the Atom 'start' link to avoid these issues and to eliminate unnecessary page reads, zone alarm challenges, etc.

As I mentioned before, I've implemented buttons to allow people to see feeds in their browser or Notepad to cater for people that really need to see the feed page (I'm guessing you can simply add them as additional URLs to your web-based registration stuff).

I use "Clipboard.SetDataObject(FeedURL)" to copy the URL to the clipboard automatically so people can paste it from there into other Aggregators.

Finally, I suspect your code might break if you run it after someone else has entered the values you need into the registry because you have not requested write permission to the existing key.  I use the general construct:

regKey = ClassesRoot.OpenSubKey("rss.feed", True)

If regKey Is Nothing Then

regKey = ClassesRoot.CreateSubKey("rss.feed")

End If

If regKey.GetValue("") Is Nothing OrElse CStr(regKey.GetValue("")) <> "RSS Feed" Then

regKey.SetValue("", "RSS Feed")

End If

to add new keys and values.  That has the added benefit that if the key is already set correctly you do not need to make the change to the registry.


Thanks Andy, much appreciated. Another better client would only help users. I'll incorporate your suggestions into my client. The end goal is to have RSS reader authors like yourself, write your own implementation for your reader.
Thanks a lot for the help,


Definately, the atom:link is very important for USM to work, but even more important is returning the correct Content-Type.

For IE, I've developed a back mechanism that is extremely reliable, which I'll release with the next version of USM client.


rzmifv fyrj vwiemytod nrodepwi jhkzxyld jahc hxakt
Hi every one. I need a software to download the related links of a particular webpage
Type "339":
Top Articles
  1. Unblock MySpace
  2. MySpace
  3. FaceParty, the British MySpace
  4. and
  5. Blocking Facebook and MySpace
  1. Review of RSS Readers
  2. MySpace Layouts
  3. RSS Stock Ticker
  4. RSS Gets an Enema
  5. Google Reader rejects