summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-09-21 15:54:39 -0700
committerBrion Vibber <brion@pobox.com>2010-09-28 07:44:20 -0700
commit907cb6558cc996f3f776659c6fc906e94088e8e8 (patch)
tree271d24ae291855fe390beba648a379fffe6bf42a
parent7a197405be2a69e8b3d9031b77b769a4ad99bd6c (diff)
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*
-rw-r--r--plugins/YammerImport/yammer-import.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/plugins/YammerImport/yammer-import.php b/plugins/YammerImport/yammer-import.php
new file mode 100644
index 000000000..d6ec97513
--- /dev/null
+++ b/plugins/YammerImport/yammer-import.php
@@ -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";
+}