YammerDoodle
This is mostly a PoC based off of Steve Peshka's article, Using the Yammer API in a .NET Client Application. We wanted to do a few things:
- Catalog Yammer Messages for Analysis (yeah, I've seen the ruby one)
- Forward #helpdesk tagged messages to a message queue that spawns helpdesk tickets
- Respond to generic #supportdev tags with the current support developer
The Database
We run the database on an Azure SQL Database instance, it's currently poorly (as in not at all) indexed. YammerDoodle/YammerDoodle.sql is a script generated off of the development database and can be used to initalize a new db. No seeds should be required but we may consider breaking out the initial seed id out in to the config since as time passes, that seed id will be more and more expensive... it's fine for now.
Where do I get these Ids, Secrets, usernames, etc?
Username/Password are for Yammer, it's the user/pass for the "bot." For the OAuth 2.0 shenanigans, follow this: https://developer.yammer.com/authentication/#a-testtoken - you'll need to be logged in as the bot while you approve/authorize your new app.
That email server...
We use smtp.com, authenticated. That's all it's written to support, authenticated, ssl, smtp.com. If you want it to be anon or something else, go ahead and add support for that.
How we run it
Azure WebJobs! We configure an Azure WebJob to "Run Continuously" and the interval between polls is controlled by adjusting the SleepInterval config. Note, Azure Website Configure AppSettings will over-ride the AppSettings in the app.config, so you can simply change it in the web portal (also note, that seems to abort all running webjobs... just an observation).
Update [2014-03-28]: Recently noticed that our WebJob would Abort every now and then, wouldn't come back until we logged in. Documentation states that to Run Continuously, you need AlwaysOn, which requires a Standard website (it was on a Free site). Scaled up and enabled AlwaysOn. So far, so good.