mindbody api

Some notes for getting started with the MindBody API.

Read this:

http://support.mindbodyonline.com/entries/21301433-how-to-issue-api-credentials

Follow the partner program link on that page and sign up. These pages are often down; it’s not you.

Their docs:

http://api.mindbodyonline.com/Doc

Download the MBO’s API expamples.

https://github.com/mindbody/API-Examples

These examples have some errors. Some includes reference files with the names in the wrong case – they must be working on Windows. Calls to php time functions now require a timezone.

There is no example of using the SiteService or GetActivationCode request that you need to start with the API.

Here is my getActivationCode.php

<?php
require_once("../includes/siteService.php");

if (!isset($_POST['submit'])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
        <head>
                <title>Get Activation Code Demo</title>
                <link rel="stylesheet" type="text/css" href="../styles/site.css" />
        </head>

        <body>
        <form method="post" action="getActivationCode.php">
                Source Name:
                <input type="text" size="25" name="sName"/><br/>
                Password:
                <input type="password" size="25" name="password"/><br/>
                SiteID:
                <input type="text" size="5" name="siteID" value="-99"/><br/>
                <input type="submit" value="submit" name="submit"/>
        </form>
<?php
} else {
$sourcename = $_POST["sName"];
$password = $_POST["password"];
$siteID = $_POST["siteID"];

// initialize default credentials
$creds = new SourceCredentials($sourcename, $password, array($siteID));

$siteService = new MBSiteService(true); //false for no debug!
$siteService->SetDefaultCredentials($creds);

$result = $siteService->GetActivationCode();

/* $cdsHtml = '<table><tr><td>ID</td><td>Name</td></tr>';
$cds = toArray($result->GetClassDescriptionsResult->ClassDescriptions->ClassDescription);
foreach ($cds as $cd) {
        $cdsHtml .= sprintf('<tr><td>%d</td><td>%s</td></tr>', $cd->ID, $cd->Name);
}
$cdsHtml .= '</table>';

echo($cdsHtml);  */
}

Here is ../includes/siteService.php mbApi.php is provided in the mindbody sample code.

<?php
require_once("mbApi.php");
        
class MBSiteService extends MBAPIService
{               
        function __construct($debug = false)
        {       
                $serviceUrl = "http://" . GetApiHostname() . "/0_5/SiteService.asmx?wsdl";

                $this->debug = $debug;
                $option = array();
                if ($debug)
                {
                        $option = array('trace'=>1);
                }
                $this->client = new soapclient($serviceUrl, $option);
        }
        
        /**
         * Returns the raw result of the MINDBODY SOAP call.
         * @param int $PageSize
         * @param int $CurrentPage
         * @param string $XMLDetail
         * @param string $Fields
         * @param SourceCredentials $credentials A source credentials object to use with this call
         * @return object The raw result of the SOAP call
         */     
        public function GetActivationCode(SourceCredentials $credentials = null)
        {               
                
                $params = $this->GetMindbodyParams($additions=array(), $this->GetCredentials($credentials), $XMLDetaili=null, $PageSize=null, $CurrentPage=null, $Fields=null, $UserCredentials = null);

                $result = $this->client->GetActivationCode($params);

                if ($this->debug)
                {
                        DebugRequest($this->client);
                        DebugResponse($this->client, $result);
                }

                return $result;
        }

}