Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
As you might have noticed I’ve been using Twitter quite often lately. On my previous weblog I installed a Drupal Twitter module for updating Twitter with my latest blog posts. But now I migrated to Technet Blogs I didn’t had this possibility anymore, so I looked for an easy way to have my latest blog posts updated to Twitter.
I searched for “rss2twitter” on Windows Live Search and found a perl script but that didn’t work for me. It just failed with the next errors:
“C:\Temp\rss2twitter>rss2twitter.exe
Malformed UTF-8 character (1 byte, need 4, after start byte 0xf1) at C:\Temp\rss
2twitter\rss2twitter.exe line 128.”
So I though why not use PowerShell? With the help of Out-Twitter from Doug Finke it was quite easy.
So here is the PowerShell RSS2Twitter script:
# Rss2Twitter PowerShell Script
# Stefan Stranger 2008
# Retrieve last post from RSS feed and post to Twitter Account
# Out-Twitter function from Doug Finke (https://dougfinke.com/blog/?p=236)
function Send-TwitterStatus($status)
{
# Enter Twitter Username and Password
$userName = "twitteraccount"
$password = "password"
$url = "https://twitter.com/statuses/update.xml"
$data = "status={0}" -f $status
$request = [Net.WebRequest]::Create($url)
$request.Credentials = New-Object System.Net.NetworkCredential($userName, $password);
$request.ContentType = "application/x-www-form-urlencoded";
$request.Method = "POST";
$bytes = [System.Text.Encoding]::UTF8.GetBytes($data)
$request.ContentLength = $bytes.Length
$requestStream = [System.IO.Stream]$request.GetRequestStream()
$requestStream.write($bytes, 0, $bytes.Length)
$response = $request.GetResponse()
$reader = [System.IO.StreamReader]$response.GetResponseStream()
([xml]$reader.ReadToEnd()).status
}
#Enter rss feed from where you want update Twitter
$uri=https://enterhere.your.rssfeed
$wc = New-Object Net.WebClient
$rss = [xml]$wc.DownloadString($uri)
$posts = $rss.rss.channel.item | Select-Object title, link
#Retrieve last post on RSS feed page.
$lastpost = $posts[0].title + ' ' + $posts[0].link
#Post to Twitter
Send-TwitterStatus $lastpost
Comments
- Anonymous
January 01, 2003
I just got a Tweet from jpavleck (www.twitter.com/jpavleck) and he pointed me to Twitterfeed.com. Why didn't I find this earlier ;-) Maybe gonna use this for the MPNotifier Twitter account...