Digg, 43things, and Drupal via XML-RPC

I can't seem to get Digg.com's "blog this" feature to work with my Drupal blog. I was able to get it to work at one point but it is really inconsistent and unrepeatable. One of the main issues I have been having is with my username having a space in it (it was "David Grant" before). Now I have changed it to "David Grant" to remove any possibility of that being a problem. I keep getting this stupid error: "You either tried to edit somebody else's blog or you don't have permission to edit your own blog." But I did have it working with these same settings before.

The same problem applies with 43things.com blog integration feature... I tried setting my blog-type to Wordpress but no dice...

Update (2006-07-29): Almost got it working. The key was enabling the blog module and enabling the "edit own stories" permission under "blog" under "access control." It turns out that there is no problem with having a space in my username. There is one small rinkle, however, and that is that with digg.com it always wants to create a "blog" content-type, not a "story." By putting a watchdog statement in the blogapi.module I was able to see that digg.com is sending "1" as the "type" argument to the blogapi_blogger_new_post function whereas the gaim-blogger plugin is sending "story". The numeric type causes drupal to create a blog entry, even though I have explictly told the blogapi to only create story nodes, at the blogapi settings page (admin/settings/blogapi). I haven't figured out exactly why this is happening yet.

Update (2006-07-29): Got it working to my satisfaction but it's an ugly hard-coded hack. I hard coded $blogid='story'; to force all new nodes created with the blogapi to be of type "story". This will obviously fail miserably for any user that doesn't have access to create stories although that doesn't matter for me since I have just a single-user blog. Well all this has made me wonder if I should use the "blog" content type as my main content type. Here's the patch anyways:

--- blogapi.module.orig 2006-07-30 00:43:52.000000000 -0400
+++ blogapi.module      2006-07-30 02:41:20.000000000 -0400
@@ -191,6 +191,7 @@
   }
 
   $edit = array();
+  $blogid = 'story';
   $edit['type'] = _blogapi_blogid($blogid);
   // get the node type defaults
   $node_type_default = variable_get('node_options_'. $edit['type'], array('status', 'promote'));

Comments

Hi David,

What settings did you use in Digg in the end? I've tried a lot of different apis but the only one with partial success was blogger, only to find when i tried to blog something it came back with an error saying blogger2.newpost not specified.

Any ideas?
thanks

I am using "blog" content type on my blog now. I am also using Drupal 6 now, which I was not before. So everything works now.

In digg, my blog type is set to "wordpress" and URL to http://www.davidgrant.ca

Unfortunately when I go into my blog settings on digg to try to re-set these settings (using "wordpress" blog type), I can't and it says to "check the URL" and that the URL returned "Array". Changing it to type "blogger (old)" also leads to errors.

Add new comment