Sep 13 2017 03:46 AM
Require assistance to script and schedule a Yammer data export (excluding attachments) to run daily, in an unzipped format. Also if its possible, to save the exported data directly into an Azure store (for Machine Learning processing).
Any suggestions, or methods already being used to achieve this?
Came across this information on the Yammer data export api:
https://developer.yammer.com/v1.0/docs/data-export-api
However I'm not a developer ie. Unsure how to correctly code, setup and execute something like this...
Thanks
Sep 13 2017 06:24 AM
Sep 13 2017 06:38 AM
@Loryan Strant its a requirement from our machine learning lab...I believe they need to have the latest data set and to track changes/variances
Sep 13 2017 12:39 PM
I run a powershell script.... scheduled to run every day. Make sure whereever you're hosting has access as well as Powershell Version 4 or newer (I use 5 currently). Check powershell version with $PSVersionTable.PSVersion.
Follow instructions on that site to get your token, then fill it in the bearer token below...
Use at your own risk. You need to build out error handling and logging. Also, directory checks for items that already exist/move items if you want to archive previous exports. GL.
$BearerToken = ''
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $BearerToken")
$headers.Add("Accept",'*/*')
$headers.Add("accept-encoding", "zip")
#Base Directory where you want these files to be saved locally
$dir = ''
$currentfile = "$($dir)\current\messages.csv"
# You can use a relative date range for the export as well, by building out a date object
$export = "https://www.yammer.com/api/v1/export?since=2015-01-01T00:00:00&include=csv"
#Create logs for your files.
$log_file = "$($dir)\log\{0:yyyy-MM}_Export.log" -f (get-date)
#Example to add logs -- $logmsg = "This is my log"
# Add-content $log_file "$logmsg"
#Two lines inside the Try is actually where the attempts work. I found there to be issues so I put them in different areas for download, then download is complete, unzip.
Try
{
invoke-webrequest -uri $export -method get -headers $headers -OutFile $dir\export.zip }
Expand-archive -path $dir\export.zip -dest $dir\current -f
Catch
{
#Error Handling goes here
}
Sep 19 2017 11:37 AM
It may be more cost effective and impactful for your organization in the long run to use a 3rd party tool designed to do this and much more. They've spent the time to learn how best to extract all the data possible from Yammer. For your specific use case, I'd highly recommend tyGraph. @Dean Swann
Sep 25 2017 10:46 AM
I'm not quite sure if you can extract any more information than the export provides. I built out a pretty robust dashboard in Tableau based off the export, which costs my organization $0 to maintain now as it's in an automated state.
Yes, tygraph has more at the moment, but I can build out any of those dashboards in a day - but there's been no requirement for me to do so internally. The thing we lack most is the ability to view lurkers. (See people who just sign in to read messages) - As well as what they're viewing, but there's no API for that so I assume there's no solution that includes that.
Sep 25 2017 08:32 PM
Congrats on automating that! It's a shame you're not seeing the demand for those analytics that I see elsewhere. I'd suggest driving a conversation with management about their business goals for the platform: are they looking to drive more innovation? improve execution? When usage is driven by a business goal, there's much more interest in the data showing improvement toward that goal.
Yes, there's no API for thread "reads" but tyGraph has found a way to mine file views and downloads. They and others also analyze replies and mentions for a clearer picture of who the influencers are in your organization. Also, there was this announced today by the Yammer team at Ignite (note the "read" counts).
Group Analytics
Oct 03 2017 07:24 AM
Oct 03 2017 09:51 AM