{"id":14974412,"url":"https://github.com/soheilrt/laravel-adobe-connect-client","last_synced_at":"2025-10-27T09:30:23.490Z","repository":{"id":52292066,"uuid":"206056772","full_name":"soheilrt/laravel-adobe-connect-client","owner":"soheilrt","description":"Laravel Adobe Connect Client ","archived":false,"fork":false,"pushed_at":"2023-02-27T10:04:12.000Z","size":160,"stargazers_count":12,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T04:31:35.910Z","etag":null,"topics":["adobe-connect","adobeconnect","classroom","laravel","laravel5","virtual-classroom","webinar"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soheilrt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-03T11:02:39.000Z","updated_at":"2024-08-04T19:42:06.000Z","dependencies_parsed_at":"2024-09-23T15:30:34.625Z","dependency_job_id":"2e0986c8-09c6-4482-ac3f-2112347e630d","html_url":"https://github.com/soheilrt/laravel-adobe-connect-client","commit_stats":{"total_commits":68,"total_committers":4,"mean_commits":17.0,"dds":0.4117647058823529,"last_synced_commit":"21929936f74b72b4f6b45b642ad709242088e9ee"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soheilrt%2Flaravel-adobe-connect-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soheilrt%2Flaravel-adobe-connect-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soheilrt%2Flaravel-adobe-connect-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soheilrt%2Flaravel-adobe-connect-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soheilrt","download_url":"https://codeload.github.com/soheilrt/laravel-adobe-connect-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238471937,"owners_count":19478132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe-connect","adobeconnect","classroom","laravel","laravel5","virtual-classroom","webinar"],"created_at":"2024-09-24T13:50:31.399Z","updated_at":"2025-10-27T09:30:18.121Z","avatar_url":"https://github.com/soheilrt.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Adobe Connect!\n\n[![Build Status](https://travis-ci.org/soheilrt/laravel-adobe-connect-client.svg?branch=master)](https://travis-ci.org/soheilrt/laravel-adobe-connect-client)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/soheilrt/laravel-adobe-connect-client/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/soheilrt/laravel-adobe-connect-client/?branch=master)\n\n* [Intro](#intro)\n* [Installation](#installation)\n* [Minimum Requirements](#minimum-requirements)\n* [Quick start](#quick-start)\n* [Commands](#commands)\n* Queries\n    * [Filter](#filtering-results)\n    * [Sorting](#sorting-results)\n* Advanced\n    * [Publishing Configs](#publishing-configs)\n    * [Entities](#entities)\n    * [Mass assignment](#mass-assigment)\n    * [Casting to array](#casing-to-array)\n    * [Cache](#cache)\n    * [Facades](#facades)\n* [Pending](#pending)\n\n## Intro\n`Laravel Adobe Connect` provides a convenient way for Laravel applications to communicate with adobe connect API. This package is originally inspired by [brunogasparetto's](https://github.com/brunogasparetto/AdobeConnectClient) package but had some changes to provide more flexibility for developers while using this package!\n\n## Installation\nYou can install this package through  [packagist](https://packagist.org/packages/soheilrt/laravel-adobe-connect-client) via the following command.\n```sh\ncomposer require soheilrt/laravel-adobe-connect-client\n```\n\n\n## Minimum Requirements\n-  PHP 7.2\n-  PHP-CURL Extention\n-  Adobe Connect API  V9.4.5\n-  Laravel 5.8\n\n## Quick Start\n1. Install the package via composer\n```bash \ncomposer require soheilrt/laravel-adobe-connect-client\n```\n2. Set your adobe info inside .env file\n```bash\nADOBE_CONNECT_HOST #your account host URL address with http:// OR https:// prefix\nADOBE_CONNECT_USER_NAME #your adobe connect account username\nADOBE_CONNECT_PASSWORD #your adobe connect account password\n```\nAnd you're all set :-).\n\nYou can also run following command to make sure everything work just fine\n```php\nuse Soheilrt\\AdobeConnectClient\\Facades\\Client;\n$commonInfo =Client::commonInfo();\n```\n\n\n## Commands\nAll of the commands inside this package runs via the `Client` class. \n\nAll available commands are listed below:\n\n| Command                     | parameters                                                                                  | Returns       | Descriptions                                                                                                                                                                                                                       |\n|:----------------------------|:--------------------------------------------------------------------------------------------|:--------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| AclFieldUpdate              | `int` $aclId \u003cbr\u003e `string` $fieldId \u003cbr\u003e `mixed` $value \u003cbr\u003e `Arrayable`$extraParams=`null` | `bool`        | Updates the passed in field-id for the specified acl-id.[see][1]                                                                                                                                                                   |\n| CommonInfo                  | `string` $domain = ' '                                                                      | `CommonInfo`  | Fetch basic information about the current user and the Adobe Connect account, including the value of the BREEZESESSION cookie. [see][2]                                                                                            |\n| GroupMembershipUpdate       | `int` $groupId \u003cbr\u003e `int` $principalId \u003cbr\u003e `bool` $isMember                                | `bool`        | Add or remove one or more principals to or from a group. [see][3]                                                                                                                                                                  |\n| ListRecordings              | `int` $folderId                                                                             | `SCORecord[]` | Provides a list of recordings (FLV and MP4) from a specified folder. [see][4]                                                                                                                                                      |\n| Login                       | `string` $login \u003cbr\u003e `string` $password                                                     | `bool`        | Login in the Service.                                                                                                                                                                                                              |\n| Logout                      | -                                                                                           | `bool`        | Logout the service.                                                                                                                                                                                                                |\n| MeetingFeatureUpdate        | `int` $accountId \u003cbr\u003e `string` $featureId \u003cbr\u003e `bool` $enable                               | `bool`        | Enable or disable features in a meeting, say to configure compliance settings. For example, tweak features of the various pods, disable recordings of meetings, and so on. [see][5]                                                |\n| PermissionInfoFromPrincipal | `int` $aclId \u003cbr\u003e `int` $principalId                                                        | `Permission`  | Get the Principal's permission in a SCO, Principal or Account. [see][6]                                                                                                                                                            |\n| PermissionUpdate            | `Arrayable` $permission                                                                     | `bool`        | How to programmatically provide users access to or remove access from various Adobe Connect sessions. [see][7]                                                                                                                     |\n| PermissionsInfo             | `int` $aclId \u003cbr\u003e `Arrayable` $filter=`null` \u003cbr\u003e `Arrayable` $sorter=`null`                | `Principal[]` | Find information about what permissions a principal has on a SCO, an account, or on a principal. Also, fetches the group and child information of the principal. [see][8]                                                          |\n| PrincipalCreate             | `Arrayable` $principal                                                                      | `Principal`   | Create a Principal. [see][9]                                                                                                                                                                                                       |\n| PrincipalDelete             | `int` $principalId                                                                          | `bool`        | Using Administrator permissions, delete one or more users or groups (principals). [see][10]                                                                                                                                        |\n| PrincipalInfo               | `int` $principalId                                                                          | `Principal`   | Provides information about one principal, either a user or a group. [see][11]                                                                                                                                                      |\n| PrincipalList               | `int` $groupId=`0`  \u003cbr\u003e `Arrayable` $filter=`null`  \u003cbr\u003e `Arrayable` $sorter=`null`        | `Principal[]` | Provides a complete list of users and groups, including primary groups. [see][12]                                                                                                                                                  |\n| PrincipalUpdate             | `Arrayable` $principal                                                                      | `bool`        | update an existing principal (a user or group), using the same account as the user making the API call. [see][9]                                                                                                                   |\n| RecordingPasscode           | `int` $scoId \u003cbr\u003e  `string` $passcode                                                       | `bool`        | Set the passcode on a Recording and turned into public.                                                                                                                                                                            |\n| ScoContents                 | `int` $scoId \u003cbr\u003e  `Arrayable` $filter=`null`  \u003cbr\u003e  `Arrayable` $sorter=`null`             | `SCO[]`       | Returns a list of SCOs within another SCO. The enclosing SCO can be a folder, meeting, or curriculum. [see][13]                                                                                                                    |\n| ScoCreate                   | `Arrayable` $sco                                                                            | `SCO`         | Create a SCO. [see][14]                                                                                                                                                                                                            |\n| ScoDelete                   | `int` $scoId                                                                                | `bool`        | Deletes a SCO. [see][15]                                                                                                                                                                                                           |\n| ScoInfo                     | `int` $scoId                                                                                | `SCO`         | Fetch detailed information about any content, meeting, or sessions (SCO) in Adobe Connect. [see][16]                                                                                                                               |\n| ScoMove                     | `int` $scoId \u003cbr\u003e  `int` $folderId                                                          | `bool`        | Moves a SCO from one folder to another. [see][17]                                                                                                                                                                                  |\n| ScoShortcuts                | `Arrayable` $filter=`null`  \u003cbr\u003e  `Arrayable` $sorter=`null`                                | `SCO[]`       | Provides information about the folders relevant to the current user. These include a folder for the user’s current meetings, a folder for the user’s content, as well as folders above them in the navigation hierarchy. [see][18] |\n| ScoUpdate                   | `Arrayable` $sco                                                                            | `bool`        | Update a SCO. NOTE: This action requires sco-id. if there is no sco-id provided when calling this action, it'll throw an `InvalidException`. [see][14]                                                                             |\n| ScoUpload                   | `int` $folderId \u003cbr\u003e  `string` $resourceName \u003cbr\u003e  `resource|SplFileInfo` $file             | `int|null`    | Uploads a file to the server and then builds the file, if necessary. [see][19]                                                                                                                                                     |\n| UserUpdatePassword          | `int` $userId \u003cbr\u003e  `string` $newPassword \u003cbr\u003e  `string` $oldPassword=`''`                  | `bool`        | Changes a user’s password. [see][20]                                                                                                                                                                                               |\n\n[1]: https://helpx.adobe.com/adobe-connect/webservices/acl-field-update.html \n[2]: https://helpx.adobe.com/adobe-connect/webservices/common-info.html\n[3]: https://helpx.adobe.com/adobe-connect/webservices/group-membership-update.html\n[4]: https://helpx.adobe.com/adobe-connect/webservices/list-recordings.html\n[5]: https://helpx.adobe.com/adobe-connect/webservices/meeting-feature-update.html\n[6]: https://helpx.adobe.com/adobe-connect/webservices/permissions-info.html\n[7]: https://helpx.adobe.com/adobe-connect/webservices/permissions-update.html#permissions_update\n[8]: https://helpx.adobe.com/adobe-connect/webservices/permissions-info.html\n[9]: https://helpx.adobe.com/adobe-connect/webservices/principal-update.html\n[10]: https://helpx.adobe.com/adobe-connect/webservices/principals-delete.html\n[11]: https://helpx.adobe.com/adobe-connect/webservices/principal-info.html\n[12]: https://helpx.adobe.com/adobe-connect/webservices/principal-list.html\n[13]: https://helpx.adobe.com/adobe-connect/webservices/sco-contents.html\n[14]: https://helpx.adobe.com/adobe-connect/webservices/sco-update.html\n[15]: https://helpx.adobe.com/adobe-connect/webservices/sco-delete.html\n[16]: https://helpx.adobe.com/adobe-connect/webservices/sco-info.html\n[17]: https://helpx.adobe.com/adobe-connect/webservices/sco-move.html\n[18]: https://helpx.adobe.com/adobe-connect/webservices/sco-shortcuts.html\n[19]: https://helpx.adobe.com/adobe-connect/webservices/sco-upload.html\n[20]: https://helpx.adobe.com/adobe-connect/webservices/user-update-pwd.html\n\n\n## Queries \nThere might be times that you want to filter(Sort) your data or results,\nyou can do that via `Filter` and `Sort` Classes\n\n### Filtering Results\n \nHere is an Example of how you can use `Filter` Class for commands that accepts Filtering\n```php   \n    /**\n     * @param  \\Soheilrt\\AdobeConnectClient\\Client\\Client  $client\n     *\n     * @throws \\Exception\n     * @return array\n     */\n    public function exampleScoContents(\\Soheilrt\\AdobeConnectClient\\Client\\Client $client): array \n    {\n        $folderId = 12345;\n\n        $filter = Soheilrt\\AdobeConnectClient\\Client\\Filter::instance()\n            -\u003elike('name', 'Test')\n            -\u003edateAfter('dateBegin', new \\DateTimeImmutable());\n\n        return $client-\u003escoContents($folderId, $filter);\n    }\n```\n\n### Sorting Results\nHere is an example of how you can sort your query result on queries that accept Sorting\n```php\nuse Soheilrt\\AdobeConnectClient\\Client\\Client;\nuse Soheilrt\\AdobeConnectClient\\Client\\Filter;\nuse Soheilrt\\AdobeConnectClient\\Client\\Sorter;\n\nclass ExampleClass\n{\n    /**\n     * @param  Client  $client\n     *\n     * @throws \\Exception\n     * @return array \n     */\n    public function exampleMethod(Client $client): array \n    {\n        $folderId = 12345;\n\n        $filter = Filter::instance()\n            -\u003elike('name', 'Test')\n            -\u003edateAfter('dateBegin', new DateTimeImmutable());\n\n        $sorter = Sorter::instance()\n            -\u003easc('dateBegin');\n\n        return $client-\u003escoContents($folderId, $filter, $sorter);\n    }\n}\n```\n\n\n\n## Advanced\n\n### Entities\nYou may sometimes want to change data on the fly!\nIn this case you can do that with Accessor and mutators. You only need to extend base\nentity class (e.g: SCO Entity) and add your Accessor or Mutator to extended class\nand set your entity as primary entity inside package config file.\n\n\nHere you can see an example of accessor which change description to uppercase\non the fly!\n```php\n#An Example of accessor \nClass ExtendedSco extends \\Soheilrt\\AdobeConnectClient\\Facades\\SCO\n{\n    public function getDescription()\n    {\n        return strtoupper($this-\u003eattributes['description']);\n    }\n}\n```\n\nand here is an example for mutator which manipulate data on the fly\nwhile trying to set properties inside entities.\n```php\nclass ExtendedSco extends \\Soheilrt\\AdobeConnectClient\\Facades\\SCO\n{\n    public function setDescription($value)\n    {\n        $this-\u003eattributes['description']=strtolower($value);\n    }\n}\n```\n\n\u003e **Note:** Entities Accessors Does Not support any arguments and Mutator\nare only support one arguments which accepts the data that user wants to set to the entity!\n\n### Publishing Configs\nYou may also want to publish config files to customize this package based on your needs. \n```bash\nphp artisan vendor:publish --tag=adobe-connect\n```\n\n### Mass assigment\nSometimes you want to assign mass of information to your entity.\nHere we made that possible with `fill` method just list eloquent models!\n```php\nuse \\Soheilrt\\AdobeConnectClient\\Client\\Entities\\SCO;\n$data=[\n    'sco-id'=\u003e1,\n    'name'=\u003e'new name'\n];\n$sco=SCO::instance()-\u003efill($data);\n```\n\n### Casting to array\nIf you ever want access to entities data at once, you can call `toArray()` command to access the\nwhole entity data at the once.\n\n\n### Session Cache\nBy Default, we cache user session to prevent extra loggin request on every command but you\ncan disable this feature if you prefer to manage your sessions manually\n\n\u003e **Note:** we do not perform automatical login request if you disbale session cache\nand you should perform it manually.\n\n### Facades\nwe provided facades for entities in case you may someday change\ndefault entities to your custom entities and if you've used facades to accessing/instatiating\ninstaces, you don't need to change anything inside your code because it'll handeled by adobe connect service provider\nand inject provided entity from config file.\n\n## Pending\n - [ ] Add Queue Support for Client Commands\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoheilrt%2Flaravel-adobe-connect-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoheilrt%2Flaravel-adobe-connect-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoheilrt%2Flaravel-adobe-connect-client/lists"}