Auto-Tweet if Type is ‘Status’ using OAuth

My guess is that you aren’t hitting the {$old_status}_to_{$new_status} action, which is what you are hooking to with draft_to_published – for new posts there is no guarantee that the “old” status is actually “draft”. Have you tried using the {$new_status}_{$post->post_type} action, which in your case would be publish_status?