/**
 * creates an activity
 *
 * @param osapi $osapi
 * @param $templateId
 * @param array $templateParams
 * @param $userId
 * @return unknown
 */
function createActivity(osapi $osapi, $title, $body, $userId = '@me', $appId = '@app')
{
    $batch = $osapi->newBatch();
    $activity = new osapiActivity();
    $activity->setField('title', $title);
    $activity->setField('body', $body);
    $create_params = array('userId' => $userId, 'groupId' => '@self', 'activity' => $activity, 'appId' => $appId);
    $batch->add($osapi->activities->create($create_params), 'createActivity');
    return $batch->execute();
}
 function addActivity($title = NULL, $body = NULL, $groupId = NULL)
 {
     if (empty($title) || empty($body) || empty($groupId)) {
         throw new Exception("should specify title, body and groupId");
     }
     $activity = new osapiActivity();
     $activity->setTitle($title);
     $activity->setBody($body);
     $params = array('userId' => '@me', 'groupId' => $groupId, 'activity' => $activity);
     $batch = $this->osapi->newBatch();
     $batch->add($this->osapi->activities->create($params), 'addActivity');
     $result = $batch->execute();
 }
 /**
  * Tests osapiActivities->create()
  */
 public function testCreate()
 {
     $response = '[{"data":null}]';
     $this->osapi->provider->httpProvider->addResponse($response);
     $batch = $this->osapi->newBatch();
     $activity = new osapiActivity(null, null);
     $activityBody = 'osapi test activity body';
     $activityTitle = 'osapi test activity at ' . time();
     $activity->setTitle($activityTitle);
     $activity->setBody($activityBody);
     $batch->add($this->osapi->activities->create(array('userId' => $this->userId, 'groupId' => '@friends', 'activity' => $activity)));
     $result = $batch->execute();
     $canonicalBody = '[{"method":"activities.create","params":{"userId":["' . $this->userId . '"],"groupId":"@friends","activity":{"body":"' . $activityBody . '","mediaItems":[],"title":"' . $activityTitle . '"},"appId":"@app"},"id":null}]';
     $lastRequest = $this->osapi->provider->httpProvider->getLastRequest();
     $this->assertEquals($canonicalBody, $lastRequest['body']);
 }
 /**
  * Private function to parse out the media items into typed osapiMediaItems
  *
  * @param osapiActivity $activity
  * @param array $array
  * @param boolean $strictMode
  */
 private static function convertMediaItems(osapiActivity $activity, array $array, $strictMode)
 {
     if (isset($array['mediaItems']) && count($array['mediaItems'])) {
         $mediaItems = array();
         foreach ($array['mediaItems'] as $mediaItem) {
             $mimeType = isset($mediaItem['mimeType']) ? $mediaItem['mimeType'] : null;
             $type = isset($mediaItem['type']) ? $mediaItem['type'] : null;
             $url = isset($mediaItem['url']) ? $mediaItem['url'] : null;
             if ($strictMode && ($mimeType == null || $type == null || $url == null)) {
                 throw new osapiException("Invalid activity entry, missing fields (mimeType: {$mimeType}, type: {$type}, url: {$url})");
             }
             $mediaItems[] = new osapiMediaItem($mimeType, $type, $url);
         }
         $activity->setMediaItems($mediaItems);
     }
     unset($array['mediaItems']);
 }
 public function testCreate()
 {
     $this->assertSupportedMethod('activities.create');
     $datenow = date('Y-m-d h:i:s');
     $batch = $this->suite->osapi->newBatch();
     $activity = new osapiActivity(null, null);
     $activity->setTitle('osapi test activity at ' . $datenow);
     $activity->setBody('osapi test activity body');
     $createParams = array('userId' => '@me', 'groupId' => '@self', 'appId' => '@app', 'activity' => $activity);
     $batch->add($this->suite->osapi->activities->create($createParams), 'createActivity');
     $result = $batch->execute();
     if ($result['createActivity'] instanceof osapiError) {
         $name = $this->suite->getName();
         $code = $result['createActivity']->getErrorCode();
         $message = $result['createActivity']->getErrorMessage();
         if ($code == 417) {
             //TODO: Have the provider throw an over quota exception, since not every provider uses this code.
             $this->markTestSkipped("Creating an activity reported 417.  Were you over quota? ({$message})");
             return;
         }
         $this->fail(sprintf("%s failed to create an activity: %s (%s)", $name, $message, $code));
     }
 }
 function _sendActivity($case, $activity)
 {
     $spaceName = "Sugar Cases " . $case->case_number;
     $activity = $GLOBALS["current_user"]->full_name . ": " . $activity;
     $spaces_config = $this->_getConfig();
     $provider = new osapiProvider("", "", "", "", $spaces_config["os_rpc_url"], "eXo Social", true, null);
     $auth = new osapiOAuth2Legged($spaces_config["os_oauth_key_name"], $spaces_config["os_oauth_key_secret"], $spaces_config["os_user"]);
     $osapi = new osapi($provider, $auth);
     $osactivity = new osapiActivity();
     $osactivity->setTitle($activity);
     $osactivity->setBody($activity);
     $params = array('userId' => '@me', 'groupId' => "space:" . $spaceName, 'activity' => $osactivity);
     // Start a batch
     $batch = $osapi->newBatch();
     $batch->add($osapi->activities->create($params));
     $result = $batch->execute();
 }
 */
require_once "__init__.php";
if ($osapi) {
    if ($strictMode) {
        $osapi->setStrictMode($strictMode);
    }
    // Start a batch so that many requests may be made at once.
    $batch = $osapi->newBatch();
    // Request the activities of the current user.
    $user_params = array('userId' => $userId, 'groupId' => '@self', 'count' => 10);
    $batch->add($osapi->activities->get($user_params), 'userActivities');
    // Get the current user's friends' activities.
    $friend_params = array('userId' => $userId, 'groupId' => '@friends', 'count' => 5);
    $batch->add($osapi->activities->get($friend_params), 'friendActivities');
    // Create an activity (you could add osapiMediaItems to this btw)
    $activity = new osapiActivity();
    // Myspace requires some addtional things to be set.
    if (isset($_REQUEST["test"]) && $_REQUEST["test"] == 'myspace') {
        $msParameters = array();
        $msParameters[] = array("key" => "content", "value" => "Hello there, this is my template parama content.");
        $msParameters[] = array("key" => "service", "value" => "PHP SDK Updated " . time());
        $activity->setField('templateParams', $msParameters);
        $activity->setField('titleId', 'Template_1');
    } else {
        $activity->setField('title', 'osapi test activity at ' . time());
        $activity->setField('body', 'osapi test activity body');
    }
    $create_params = array('userId' => $userId, 'groupId' => '@self', 'activity' => $activity, 'appId' => $appId);
    $batch->add($osapi->activities->create($create_params), 'createActivity');
    // supported fields
    $batch->add($osapi->activities->getSupportedFields(), 'supportedFields');
 /**
  * Tests osapiActivity->getUserId()
  */
 public function testGetUserId()
 {
     $this->assertEquals(1, $this->osapiActivity->getUserId());
 }