Initial semi-working yammer import :D
* no avatars * no details of user accounts or their auth info * no group memberships or subscriptions * no attachments * will probably esplode if >20 messages in your network *whistle innocently*
This commit is contained in:
parent
7a197405be
commit
907cb6558c
59
plugins/YammerImport/yammer-import.php
Normal file
59
plugins/YammerImport/yammer-import.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
if (php_sapi_name() != 'cli') {
|
||||
die('no');
|
||||
}
|
||||
|
||||
define('INSTALLDIR', dirname(dirname(dirname(__FILE__))));
|
||||
|
||||
require INSTALLDIR . "/scripts/commandline.inc";
|
||||
|
||||
// temp stuff
|
||||
require 'yam-config.php';
|
||||
$yam = new SN_YammerClient($consumerKey, $consumerSecret, $token, $tokenSecret);
|
||||
$imp = new YammerImporter();
|
||||
|
||||
$data = $yam->messages();
|
||||
/*
|
||||
["messages"]=>
|
||||
["meta"]=> // followed_user_ids, current_user_id, etc
|
||||
["threaded_extended"]=> // empty!
|
||||
["references"]=> // lists the users, threads, replied messages, tags
|
||||
*/
|
||||
|
||||
// 1) we're getting messages in descending order, but we'll want to process ascending
|
||||
// 2) we'll need to pull out all those referenced items too?
|
||||
// 3) do we need to page over or anything?
|
||||
|
||||
// 20 qualifying messages per hit...
|
||||
// use older_than to grab more
|
||||
// (better if we can go in reverse though!)
|
||||
// meta: The older-available element indicates whether messages older than those shown are available to be fetched. See the older_than parameter mentioned above.
|
||||
foreach ($data['references'] as $item) {
|
||||
if ($item['type'] == 'user') {
|
||||
$user = $imp->importUser($item);
|
||||
echo "Imported Yammer user " . $item['id'] . " as $user->nickname ($user->id)\n";
|
||||
} else if ($item['type'] == 'group') {
|
||||
$group = $imp->importGroup($item);
|
||||
echo "Imported Yammer group " . $item['id'] . " as $group->nickname ($group->id)\n";
|
||||
} else if ($item['type'] == 'tag') {
|
||||
// could need these if we work from the parsed message text
|
||||
// otherwise, the #blarf in orig text is fine.
|
||||
} else if ($item['type'] == 'thread') {
|
||||
// Shouldn't need thread info; we'll reconstruct conversations
|
||||
// from the reply-to chains.
|
||||
} else if ($item['type'] == 'message') {
|
||||
// If we're processing everything, then we don't need the refs here.
|
||||
} else {
|
||||
echo "(skipping unknown ref: " . $item['type'] . ")\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Process in reverse chron order...
|
||||
// @fixme follow paging
|
||||
$messages = $data['messages'];
|
||||
$messages = array_reverse($messages);
|
||||
foreach ($messages as $item) {
|
||||
$notice = $imp->importNotice($item);
|
||||
echo "Imported Yammer notice " . $item['id'] . " as $notice->id\n";
|
||||
}
|
Loading…
Reference in New Issue
Block a user