/** * * Post Photo to Timeline * * @param string $path File path of Photo to Post * @param string $caption Caption for this Photo * @return API\Response\ConfigureMediaResponse * @throws Exception */ public function postPhoto($path, $caption = null) { if (!$this->isLoggedIn()) { throw new InstagramException("You must be logged in to call postPhoto()."); } $request = new PhotoUploadRequest($this, $path); $response = $request->execute(); if (!$response->isOk()) { throw new InstagramException(sprintf("Failed to Upload Photo: [%s] %s", $response->getStatus(), $response->getMessage())); } $request = new ConfigureMediaRequest($this, $response->getUploadId(), $path, $caption); $response = $request->execute(); if (!$response->isOk()) { throw new InstagramException(sprintf("Failed to Configure Media: [%s] %s", $response->getStatus(), $response->getMessage())); } return $response; }