Natalie Jost has a nice post about how to track who else is linking to your blog but also a question: “How to get this information out of Technorati?” The answer is a little bit more techie than it should have to be, but anyway:
Technorati is offering an API for getting exactly this kind of information out of it. What do you need for that?
- An account on Technorati
- An API key which you can get here
The last thing you need is a script that actually uses this API. How should it work? That absolutely depends on what you want. I personally prefer a small script that polls that data let’s say once per day and stores the output inside of a PHP file that I could then simply integrate in whatever CMS I’m currently using.
A very simple script for doing something like that would be:
#!/usr/bin/env ruby
require 'rexml/document'
require 'open-uri'
require 'cgi'
OUTPUT_FILE="cosmos.php"
API_KEY="" # your Technorati API
BLOG_URL="" # your site. e.g.: zerokspot.com
class String
def escape_single_quotes
self.gsub(/[']/, '\\\\\'')
end
end
# http://www.bigbold.com/snippets/posts/show/880
u="http://api.technorati.com/cosmos?key=%s&url=%s"%([API_KEY,BLOG_URL])
open(u) do |site|
doc = REXML::Document.new(site.read)
open(OUTPUT_FILE,'w+') do |output_file|
output_file.write("$links=array();\n")
doc.elements.each("//item") do |item|
puts "#" if $DEBUG
out = "$links[] = array(\"site\"=>\'%s\', \"url\"=> \'%s\');\n"%([
CGI::escapeHTML(item.elements['weblog/name'].text.escape_single_quotes),
CGI::escapeHTML(item.elements['nearestpermalink'].text.escape_single_quotes)
])
output_file.write(out)
end
end
end
All you’d have to do is change the API_KEY and BLOG_URL constants and it would create a cosmos.php whereever you’ve started this script. This php file would then contain entries in following format:
$links = array();
$links[] = array("site"=>"My site", "url"=>"http://mysite.com/pointing_to_you.html");
Ready for being integrated in any php script and for cron’ing :)
The code isn’t all that fantastic but it should at least be a good starting point :)
Do you want to give me feedback about this article in private? Please send it to comments@zerokspot.com.
Alternatively, this website also supports Webmentions. If you write a post on a blog that supports this technique, I should get notified about your link π