Zoho CRM API SDK is a wrapper to Zoho CRM APIs. By using this sdk, user can build the application with ease

Related tags

API zcrm-php-sdk
Overview

Archival Notice:

This SDK is archived. You can continue to use it, but no new features or support requests will be accepted. For the new version, refer to

PHP SDK for Zoho CRM

PHP SDK for Zoho CRM APIs provides wrapper for Zoho CRM APIs. Hence invoking a Zoho CRM API from your client application is just a method call.It supports both single user as well as multi user authentication.

Registering a Zoho Client

Since Zoho CRM APIs are authenticated with OAuth2 standards, you should register your client app with Zoho. To register your app:

  1. Visit this page https://accounts.zoho.com/developerconsole.
  2. Click on Add Client ID.
  3. Enter Client Name, Client Domain and Redirect URI then click Create.
  4. Your Client app would have been created and displayed by now.
  5. The newly registered app's Client ID and Client Secret can be found by clicking OptionsEdit. (Options is the three dot icon at the right corner).

Setting Up

PHP SDK is installable through composer. Composer is a tool for dependency management in PHP. SDK expects the following from the client app.

Client app must have PHP 5.6 or above with curl extension enabled.

PHP SDK must be installed into client app though composer.

The function ZCRMRestClient::initialize($configuration) must be called on startup of app.

$configuration - Contains the configuration details as a key-value pair.

Token persistence handling (storing and utilizing the oauth tokens) can be done in three ways. File, DB and Custom persistence.

Installation of SDK through composer

Install Composer(if not installed) Run this command to install the composer

curl -sS https://getcomposer.org/installer | php

To make the composer accessible globally, follow the instructions from the link below

To install composer on mac/ linux machine:

https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx

To install composer on windows machine:

https://getcomposer.org/doc/00-intro.md#installation-windows

Install PHP SDK

Install PHP SDK Here's how you install the SDK:

  1. Navigate to the workspace of your client app
  2. Run the command below:

composer require zohocrm/php-sdk

Hence, the PHP SDK would be installed and a package named 'vendor' would be created in the workspace of your client app.

Configurations

To access the CRM services through SDK, the client application must be first authenticated. This can be done by passing a key-value configuration pair to the initialization process.

The $configuration array must be created. It will contain the authentication credentials required. The configuration array must then be passed using the "ZCRMRestClient::initialize($configuration); ".

The user must pass the configuration values as php array(key-value pair) as argument to the ZCRMRestclient::initialize($configuration); function. Below is the list of keys that are to be in the array.

Mandatory keys

client_id client_secret redirect_uri currentUserEmail

Optional keys

applicationLogFilePath sandbox apiBaseUrl apiVersion access_type accounts_url persistence_handler_class token_persistence_path db_port db_username db_password

client_id, client_secret and redirect_uri are your OAuth client’s configurations that you get after registering your Zoho client.

currentUserEmail - In case of single user, this configuration can be set using "ZCRMRestClient->setCurrentUser()".

access_type must be set to offline only because online OAuth client is not supported by the PHP SDK as of now.

apiBaseUrl - Url to be used when calling an API. It is used to denote the domain of the user. Url may be: www.zohoapis.com (default) www.zohoapis.eu www.zohoapis.com.cn

apiVersion is "v2".

accounts_url - Default value set as US domain. The value can be changed based on your domain(EU,CN). accounts.zoho.com accounts.zoho.eu accounts.zoho.com.cn

sandbox - To make API calls to sandbox account , please change the value of following key to true. By default the value is false.

applicationLogFilePath - The SDK stores the log information in a file. The file path of the folder must be specified in the key and the SDK automatically creates the file. The default file name is the ZCRMClientLibrary.log. In case the path isn't specified, the log file will be created inside the project.

persistence_handler_class is the implementation of the ZohoOAuthPersistenceInterface.

If the Optional keys are not specified, their default values will be assigned automatically. The 'apiBaseUrl' and 'accounts_url' are mandatory in case the user is not in the "com" domain.

Initialization

The app would be ready to be initialized after defining the configuration array. The user can now proceed to generate the required tokens to run the app.

The generation of the grant token can be done using two methods.

Self-Client Redirection-based code generation

We will be using the self-client option here to demonstrate the process.

Generating self-authorized grant token

For self client apps, the self authorized grant token should be generated from the Zoho Developer Console (https://accounts.zoho.com/developerconsole)

  1. Visit https://accounts.zoho.com/developerconsole
  1. Click Options → Self Client of the client for which you wish to authorize.
  2. Enter one or more(comma separated) valid Zoho CRM scopes, that you wish to authorize, in the “Scope” field and choose a time of expiry.
  3. Copy the grant token.
  4. Generate refresh_token from grant token by using below URL

https://accounts.zoho.com/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code It's a POST request

Copy the refresh_token for backup

Please note that the generated grant token is valid only for the stipulated time you choose while generating it. Hence, refresh token should be generated within that time.

Generating access token

Access token can be generated by grant token or refresh token. Following any one of the two methods is sufficient.

Access Token from grant token:

The following code snippet should be executed from your main class to get access token. Please paste the copied grant token in the string literal mentioned below. This is a one-time process.

$configuration =array("client_id"=>{client_id},"client_secret"=>{client_secret},"redirect_uri"=>{redirect_url},"currentUserEmail"=>{user_email_id}); ZCRMRestClient::initialize($configuration); $oAuthClient = ZohoOAuth::getClientInstance(); $grantToken = "paste_the_self_authorized_grant_token_here"; $oAuthTokens = $oAuthClient->generateAccessToken($grantToken);

Access Token from refresh token:

The following code snippet should be executed from your main class to get access token. Please paste the copied refresh token in the string literal mentioned below. This is a one-time process.

$configuration =array("client_id"=>{client_id},"client_secret"=>{client_secret},"redirect_uri"=>{redirect_url},"currentUserEmail"=>{user_email_id}); ZCRMRestClient::initialize($configuration); $oAuthClient = ZohoOAuth::getClientInstance(); $refreshToken = "paste_the_refresh_token_here"; $userIdentifier = "provide_user_identifier_like_email_here"; $oAuthTokens = $oAuthClient->generateAccessTokenFromRefreshToken($refreshToken,$userIdentifier);

Upon successful execution of the above code snippet, the generated access token and given refresh token would have been persisted through our persistence handler class.

Once the OAuth tokens have been persisted, subsequent API calls would use the persisted access and refresh tokens. The SDK will take care of refreshing the access token using refresh token, as and when required.

App Startup

The SDK requires the following line of code invoked every time your client app is started.

$configuration =array("client_id"=>{client_id},"client_secret"=>{client_secret},"redirect_uri"=>{redirect_url},"currentUserEmail"=>{user_email_id}); ZCRMRestClient::initialize($configuration);

Once the SDK has been initialized by the above line, you could use any APIs of the library to get proper results.

Using the SDK

Add the below line in your client app PHP files, where you would like to make use of SDK.

require 'vendor/autoload.php'

Through this line, you can access all the functionalities of the PHP SDK.

Class Hierarchy

All Zoho CRM entities are modelled as classes having members and methods applicable to that particular entity.

ZCRMRestClient is the base class of the SDK. This class has, methods to get instances of various other Zoho CRM entities.

The class relations and hierarchy of the SDK follows the entity hierarchy inside Zoho CRM.

Each class entity has functions to fetch its own properties and to fetch data of its immediate child entities through an API call. For example, a Zoho CRM module (ZCRMModule) object will have member functions to get a module’s properties like display name, module Id, etc, and will also have functions to fetch all its child objects (like ZCRMLayout).

The class hierarchy of various Zoho CRM entities are given below:

  • ZCRMRestClient
    • ZCRMOrganization
      • ZCRMUser
        • ZCRMUserTheme
          • ZCRMUserCustomizeInfo
        • ZCRMRole
        • ZCRMProfile
          • ZCRMPermission
          • ZCRMProfileSection
            • ZCRMProfileCategory
      • ZCRMModule
        • ZCRMLayout
          • ZCRMSection
            • ZCRMField
            • ZCRMPickListValue
            • ZCRMLookupField
          • ZCRMLeadConvertMapping
            • ZCRMLeadConvertMappingField
        • ZCRMCustomView
          • ZCRMCustomViewCategory
          • ZCRMCustomViewCriteria
        • ZCRMRelatedListProperties
          • ZCRMModuleRelatedList
        • ZCRMRecord
        • ZCRMNote
        • ZCRMAttachment
        • ZCRMInventoryLineItem
          • ZCRMTax
        • ZCRMEventParticipant
        • ZCRMPriceBookPricing
        • ZCRMModuleRelation
        • ZCRMJunctionRecord
        • ZCRMTrashRecord

Instance object

It isn’t always effective to follow the complete class hierarchy from the top to fetch the data of an entity at some lower level, since this would involve API calls at each level. In order to handle this, every entity class has a getInstance() function to get its own dummy object and functions to get dummy objects of its child entities.

Please note that the getInstance() function would not have any of its properties filled because it would not fire an API call. This would just return a dummy object that shall be only used to access the non-static functions of the class.

Summing it up

ZCRMRestClient::getModule(“Contacts”) would return the actual Contacts module, that has all the properties of the Contacts module filled through an API call.
ZCRMRestClient::getModuleInstance(“Contacts”) would return a dummy ZCRMModule object that would refer to the Contacts module, with no properties filled, since this doesn’t make an API call.
Hence, to get records from a module, it is not necessary that you need to start from ZCRMRestClient. Instead, you could get a ZCRMModule instance with ZCRMModule::getInstance() and then invoke its non-static getRecords() function from the created instance. This would avoid the API call which would have been triggered to populate the ZCRMModule object.

Accessing record properties

Since record properties are dynamic across modules, we have only given the common fields like createdTime, createdBy, owner etc, as ZCRMRecord’s default members. All other record properties are available as a map in ZCRMRecord object. To access the individual field values of a record, use the getter and setter methods available. These methods only support API names.

To get a field value, use record.getFieldValue(field_api_name);

To set a field value, use record.setFieldValue(field_api_name, new_value);

The keys of the record properties map are the API names of the module’s fields. They are available in your CRM,

Setup → Developer Space → APIs → CRM API → API Names.

While setting a field value, please make sure of that the set value is of the data type of the field to which you are going to set it.

Response Handling

A method seeking a single entity would return APIResponse object, whereas a method seeking a list of entities would return BulkAPIResponse object.

APIResponse.getData() would return a single Zoho CRM entity object. Use the function getData() to get the entity data from the response wrapper objects for APIResponse. (ex: ZCRMRecord, ZCRMModule, ZCRMField, etc..). For example: a single record/field/module information.

BulkAPIResponse.getData() would return an array of Zoho CRM entity objects (ex: ZCRMRecord, ZCRMModule, ZCRMField, etc..). Use the function getData() to get the entity data from the response wrapper objects for BulkAPIResponse. For example: a multiple records/fields/modules information.

FileAPIResponse will be returned for file download APIs to download a photo or an attachment from a record or note such as record.downloadPhoto(), record.downloadAttachment() etc. FileAPIResponse has two defined methods namely FileAPIResponse.getFileName() which returns the name of the file that is downloaded and FileAPIResponse.getFileContent() that gives the file content as String.

ResponseInfo - any other information, if provided by the API, in addition to the actual data.

response.getInfo()

List<EntityResponse> - status of individual entities in a bulk API. For example: an insert records API may partially fail because of a few records. This dictionary gives the individual records’ creation status. It is available through:

response.getEntityResponses()

Exceptions

All unexpected behaviours like faulty API responses, library anomalies are handled by the SDK and are thrown only as a single exception - ZCRMException. Hence, it is enough to catch this exception alone in the client app code.

Examples:

Sample Request for insert records:

$zcrmModuleIns = ZCRMModule::getInstance("Invoices");
$bulkAPIResponse=$zcrmModuleIns->createRecords($recordsArray); // $recordsArray - array of ZCRMRecord instances filled with required data for creation.
$entityResponses = $bulkAPIResponse->getEntityResponses();
foreach($entityResponses as $entityResponse)
{
if("success"==$entityResponse->getStatus())
{
echo "Status:".$entityResponse->getStatus();
echo "Message:".$entityResponse->getMessage();
echo "Code:".$entityResponse->getCode();
$createdRecordInstance=$entityResponse->getData();
echo "EntityID:".$createdRecordInstance->getEntityId();
echo "moduleAPIName:".$createdRecordInstance->getModuleAPIName();
…. } }

Sample Invoice record instance with filled data
-----------------------------------------------

$record=ZCRMRecord::getInstance("Invoices",null);
$record->setFieldValue("Subject","Iphone sale to John");
$record->setFieldValue("Account_Name","410405000001016021");
$productInstance=ZCRMRecord::getInstance("Products",410405000001108011);
$lineItem=ZCRMInventoryLineItem::getInstance($productInstance);
$taxInstance1=ZCRMTax::getInstance("Sales Tax");
$taxInstance1->setPercentage(2);
$taxInstance1->setValue(10);
$lineItem->addLineTax($taxInstance1);
$taxInstance1=ZCRMTax::getInstance("Vat");
$taxInstance1->setPercentage(12);
$taxInstance1->setValue(60);
$lineItem->addLineTax($taxInstance1);
$lineItem->setQuantity(100);
$lineItem->setDiscount(0.5);
$record->addLineItem($lineItem);

Sample Request to fetch records:

$zcrmModuleIns = ZCRMModule::getInstance("Contacts");
$bulkAPIResponse=$zcrmModuleIns->getRecords();
$recordsArray = $bulkAPIResponse->getData(); // $recordsArray - array of ZCRMRecord instances

For more APIs, please refer this link

Comments
  • code cleanup

    code cleanup

    This is the official Zoho API SDK, yet its coding style falls well below today's standards.

    Simple things like the following should be addressed:

    1. Files ending in PHP code do not need the closing ?> PHP tag.
    2. Whitespace should be consistent.
    3. Using __DIR__ instead of dirname(__FILE__).
    4. Using single quotes around strings that don't need parsing or have single quotes within.
    5. Using switch() where appropriate, instead of endless if/else() statements.
    6. Using typecasting instead of $str = "" . $var; for strings and $num = $var + 0; for numbers.

    About item (6), the results of that + 0 technique are unpredictable. It depends on what value is in the variable. Look over this to see why:

    Input             Output
    '2' + 0           2 (int)
    '2.34' + 0        2.34 (float)
    '0.3454545' + 0   0.3454545 (float)
    

    So it's always better to use (int) or (float) typecasts whenever a specific type is needed.

    There are many third-party SDK's for Zoho's API, and one reason may be that this official library does not live up to today's standards. I will provide such improvements in a pull-request if you will review and accept the changes. Please acknowledge this and I will proceed.

    Please see the changes made in this pull-request for example updates.

    opened by TheDigitalOrchard 7
  • fixed case of filename TagAPIHandler.php & oauth logfile permission denied

    fixed case of filename TagAPIHandler.php & oauth logfile permission denied

    1. On case insensitive systems (MacOS) this isn't a problem but where the filesystem is case sensitive then the API fails since this call fails in src/com/zoho/crm/library/crud/ZCRMModule.php

    realpath(dirname(__FILE__).'/../api/handler/TagAPIHandler.php')

    1. PHPUnit tests fail when permission is denied on oauth logfile & app logfile
    opened by blacknell 6
  • Changes for logging, database connection and IAM email.

    Changes for logging, database connection and IAM email.

    Allow the database host and name to be defined by end-users. You should not assume that the database is hosted locally or force a particular database name.

    End-users should be able to specify where log files are generated. Files should never be created or changed within a package directory. Otherwise Composer will flag this as a problem.

    Please see the changes to the ZohoOAuthClient::getUserEmailIdFromIAM() method. I'm interested to hear your opinion on this.

    opened by adamdyson 6
  • Issue #34 Removing set_include_path from PersistenceByFile

    Issue #34 Removing set_include_path from PersistenceByFile

    As Issue #34 mentions, using set_include_path() has the potential to break systems.

    This change removes set_include_path() entirely while still safely reading and writing the OAuth Tokens to a file on disk.

    I added PHPUnit Tests.

    opened by ooglek 5
  • Conversion / Refactor  (Please consider)

    Conversion / Refactor (Please consider)

    The current state of this project is a blocker for us ( at least to proceed with ) - Our vendor code is created during the ( build / profiling) process and should not contain configuration code.

    I spent some time modernizing the code, mostly syntactical with the same logic - other than the config being replaced by a config.yml file.
    The unit tests were not converted, but left in place since they should still be very close and probably only need changes to includes.

    Although I believe this code still works as intended, I realize that 138 files is not exactly a PR.

    Please review my fork or package

    composer require dylanlawrence/zohocrm dev-master

    opened by dylanlawrence 4
  • Issue with set_include_path

    Issue with set_include_path

    There is an issue when you include the library in a platform like Magento. This kind of platform defines a include_path, and currently the set_include_path overwrite the path originally defined which cause issues. It would be better to add Zoho API path to the original path.

    opened by bourgesloic 3
  • persistence handler class from params

    persistence handler class from params

    these changes will help users to customize the way of working with the database without affecting the source code, now there is a need to edit them after each deployment, and there was mistake in arguments for mysqli Class

    opened by fubolg 2
  • Feature/extend array access check

    Feature/extend array access check

    Check whether array has at least two elements before accessing the index 1

    • This allows to have an editorconfig with insert_final_new_line and prevents a nasty bug to track down.
    • Update package descriptions in composer.json
    opened by jratzenboeck 2
  • Fix response filtering

    Fix response filtering

    array_filter() filters out everything equals to false, not surprisingly false values in arrays. But we do want to keep false since checkbox values are boolean and you we need to send false value to uncheck. So we only need to filter out null values, hence the callback.

    opened by djozsef 2
  • Support host_address in Config

    Support host_address in Config

    This is pretty similar to #50 and #45, but this only adds the ability to set host_address.

    The ability to use a separate Host Address for the database is mentioned in the Docs, but it doesn't actually work in the current codebase. This is important if your database exists anywhere else but localhost.

    https://www.zoho.com/crm/developer/docs/php-sdk/config.html

    opened by d4mation 1
  • Allow sending additional URL parameters to the getRecords request

    Allow sending additional URL parameters to the getRecords request

    Currently when calling the getRecords() method, it's impossible to add any URL parameters outside of the following parameters:

    • cvid ($cvId)
    • sort_by ($sortByField)
    • sort_order ($sortOrder)
    • page ($page)
    • per_page ($perPage)

    In my use case, I'm looking specifically for the "converted" parameter, but I've implemented a new parameter that functions similarly to the $customHeaders argument in the getRecords()method.

    Also, the phpdoc says that the $customHeader argument is supposed to be a string, but it seems like the method actually expects it to be an array? Is that something you'd like me to fix as well while I'm making adjustments? In addition to the phpdoc having the wrong type, the code only checks if the $customHeaders is not null before trying to iterate over the customHeaders. I'm debating adding an additional check (either is_array($customHeaders) or is_iterable($customHeaders)) to make sure it doesn't throw any weird errors, but I wanted to ask your preference before making the change.

    opened by boroth 1
  • API URL is wrong when I use URL with https://

    API URL is wrong when I use URL with https://

    If I init the Client like:

    ZCRMRestClient::initialize(array(
                'access_type' => 'offline',
                'accounts_url' => 'https://accounts.zoho.eu',
                'apiBaseUrl' => 'https://www.zohoapis.eu'
    ));
    

    I got double https://https:// on curl request.

    I think the problem is comming from the like I changed!

    opened by mserralta 0
  • Inject an instantiated persistence handler.

    Inject an instantiated persistence handler.

    Hi, the current method of creating a custom persistence handler doest allow the developer access to the constructor or setter methods.

    Instead, consider injecting a custom persistence handler. I've done this by adding the custom handler to the config array at run time.

    Although better yet would be a setter method.

    opened by mogilvie 3
Releases(2.2.1)
  • 2.2.1(Sep 3, 2020)

  • 2.2.0(Jul 13, 2020)

  • 2.1.2(Jun 23, 2020)

  • 2.1.1(May 7, 2020)

    Handled code to throw an exception if accounts scope is not included in the generated grant token or when user email cannot be fetched with the generated access token

    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Feb 24, 2020)

  • 2.0.9(Dec 2, 2019)

  • 2.0.8(Nov 26, 2019)

  • 2.0.7(Nov 21, 2019)

    Provided Bulk API support in SDK. Remote SQL database supported. Custom persistence handler class name can be given. Custom params and custom headers can be given. Issue fix in custom view criteria value.

    Following methods have been changed from from the last versions under each file. ZCRMCustomView.php -getRecords()

    ZCRMModule.php -getAllCustomViews() -searchRecordsByWord() (function name changed from searchRecords()) -searchRecordsByPhone() -searchRecordsByEmail() -searchRecordsByCriteria() -getAllDeletedRecords() -getRecycleBinRecords() -getPermanentlyDeletedRecords()

    ZCRMOrganization.php -getAllUsers() -getAllActiveUsers() -getAllDeactiveUsers() -getAllConfirmedUsers() -getAllNotConfirmedUsers() -getAllDeletedUsers() -getAllActiveConfirmedUsers() -getAllAdminUsers() -getAllActiveConfirmedAdmins() -searchUsersByCriteria()

    ZCRMRecord.php -getRelatedListRecords() -getAttachments()

    please refer to the sample codes https://www.zoho.com/crm/developer/docs/php-sdk/sample-codes.html

    Source code(tar.gz)
    Source code(zip)
  • 2.0.6(Nov 18, 2019)

  • 2.0.5(Oct 11, 2019)

  • 2.0.4(Sep 13, 2019)

  • 2.0.2(Sep 4, 2019)

  • 2.0.1(May 30, 2019)

    Tag names can have spaces while associating with records. In Records fetching functions, tag information can be retrieved as ZCRMTag instance.

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(May 30, 2019)

    PSR-4 standards followed Line tax support provided for Inventory modules. Line item can now be added, updated or deleted. (This costs 2 API Credits) Org tax API supported. Trigger support given for specific(single) create and update operations. Lead Assignment rule supported. Custom DB support provided. Duplicate check fields support provided for upsert record. Additional details can be added to Convert Lead operation. Criteria pattern and condition can be extracted directly in customview API. Multiple clients are supported. Sample codes for all operations provided.

    Source code(tar.gz)
    Source code(zip)
  • 1.1.8(Apr 17, 2019)

    In single and bulk record creation, lead assignment rule can be executed. Ex. $trigger=null; $larid="430000000223";// lead assignment rule id $bulkResponse=$moduleInstance->createRecords($recordInstanceArray,$trigger,$larid);

    Source code(tar.gz)
    Source code(zip)
  • 1.1.7(Jan 25, 2019)

  • 1.1.6(Dec 17, 2018)

  • 1.1.5(Dec 4, 2018)

  • 1.1.4(Nov 28, 2018)

  • 1.1.3(Nov 27, 2018)

  • 1.1.2(Nov 14, 2018)

  • 1.1.0(Oct 10, 2018)

    Zoho CRM PHP SDK can take the SDK configuration details as either map or through properties file given by SDK. SDK Supports to take the mysql login details(port number, username, password) from user

    Source code(tar.gz)
    Source code(zip)
  • 1.0.4(Sep 6, 2018)

    Support given to trigger off auto actions (like workflows, blueprints and approvals) on records create and update. Support given to trigger only selected auto actions (like workflows, blueprints and approvals) on records create and update.

    Source code(tar.gz)
    Source code(zip)
  • 1.0.2(Apr 20, 2018)

  • 1.0.1(Apr 12, 2018)

    1. Entity id coming as float value in 32 bit PHP build fixed. From this version onwards, Entity ids given/taken as String(Ex. "1386586000002680139")

    2. Issue fix in user create

    3. getDisplayFieldId method removed from ZCRMModule

    4. Search records is now supported with criteria, phone and email based search

    Source code(tar.gz)
    Source code(zip)
Owner
null
PHP library/SDK for Crypto APIs 2.0 using Guzzle version 7

cryptoapis/sdk-guzzle7 Crypto APIs 2.0 is a complex and innovative infrastructure layer that radically simplifies the development of any Blockchain an

Crypto APIs 3 Oct 21, 2022
PHP SDK - Flexie CRM fiskalizimi solution

PHP SDK - Flexie CRM fiskalizimi solution Fiskalizimi PHP SDK allows you to talk and generate your e-invoices programmatically from your own solution

Flexie CRM 3 Dec 30, 2021
Laravel api tool kit is a set of tools that will help you to build a fast and well-organized API using laravel best practices.

Laravel API tool kit and best API practices Laravel api tool kit is a set of tools that will help you to build a fast and well-organized API using lar

Ahmed Esa 106 Nov 22, 2022
PHP SDK for Checkout RESTful APIs

REST API SDK for PHP V2 To consolidate support across various channels, we have currently turned off the feature of GitHub issues. Please visit https:

PayPal 400 Nov 29, 2022
PHP SDK for PayPal RESTful APIs

Deprecation Notice: This SDK is deprecated. You can continue to use it, but no new features or support requests will be accepted. For alternatives, pl

PayPal 2.1k Jan 5, 2023
A simple way of authenticating your RESTful APIs with API keys using Laravel

ApiGuard This package is no longer maintained This package is no longer maintained as Laravel already has a similar feature built-in since Laravel 5.8

Chris Bautista 691 Nov 29, 2022
A simple PHP package for sending messages to Slack, with a focus on ease of use and elegant syntax.

Slack for PHP | A simple PHP package for sending messages to Slack with incoming webhooks, focused on ease-of-use and elegant syntax. supports: PHP 7.

null 128 Nov 28, 2022
A REST API that should power the Agile Monkeys CRM Service

This is a simple REST API that purposes to power the Agile Monkeys CRM service

Dickens odera 3 Jul 31, 2021
An SDK built to facilitate application development for Facebook Ads API.

Facebook Business SDK for PHP Introduction The Facebook Business SDK is a one-stop shop to help our partners better serve their businesses. Partners a

Meta 719 Dec 28, 2022
The server component of API Platform: hypermedia and GraphQL APIs in minutes

API Platform Core API Platform Core is an easy to use and powerful system to create hypermedia-driven REST and GraphQL APIs. It is a component of the

API Platform 2.2k Dec 27, 2022
This project lists all the mandatory steps I recommend to build a Website using Symfony, Twig, Doctrine.

{% raw %} <-- keep this for Jekyll to fully bypass this documents, because of the Twig tags. Symfony Website Checklist ?? Summary~~~~ Elevator pitch P

William Pinaud 6 Aug 31, 2022
Laravel A2Reviews Client API lets you build apps, extensions, or plugins to get reviews from the A2reviews APP.

Overview Laravel A2Reviews Client API lets you build apps, extensions or plugins to get reviews from the A2reviews APP. Including adding reviews to a

Be Duc Tai 2 Sep 26, 2021
Raidbots API wrapper which incorporates existing reports and static data into your project.

Raidbots API Raidbots API wrapper which incorporates existing reports and static data into your project. Usage use Logiek\Raidbots\Client; $client =

Logiek 2 Dec 23, 2021
An object oriented PHP wrapper for the Livepeer API

Livepeer PHP An object oriented PHP wrapper for the Livepeer API Requirements PHP >= 7.4 A PSR-17 implementation A PSR-18 implementation Install Via C

Owen Voke 2 Nov 23, 2021
💗 C++ wrapper for Zend API

PHP-X C++ wrapper for Zend API Requirements PHP 7.2 or later Linux/MacOS/Windows GCC 4.8 or later Composer Build phpx (bin) ./build.sh sudo cp bin/php

韩天峰-Rango 815 Dec 6, 2022
A PHP wrapper for the Instagram API. Feedback or bug reports are appreciated.

Instagram PHP API V2 Note: On the 17 Nov 2015 Instagram made changes to their API . Apps created before Nov 17, 2015 wont be affected until Jun 2016.

Christian Metz 1.5k Dec 23, 2022
AWS Cognito package using the AWS SDK for PHP/Laravel

Laravel Package to manage Web and API authentication with AWS Cognito AWS Cognito package using the AWS SDK for PHP This package provides a simple way

EllaiSys 74 Nov 15, 2022
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.

API Platform is a next-generation web framework designed to easily create API-first projects without compromising extensibility and flexibility: Desig

API Platform 7.7k Jan 7, 2023
Behat extension for those who want to write acceptances tests for apis

Behapi Behat extension to help write describe features related to HTTP APIs. PHP 7.3, Behat 3.7 and a discoverable php-http client are required to mak

Baptiste Clavié 32 Nov 25, 2022