PHPackages                             macure/jojka-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. macure/jojka-sdk

ActiveLibrary[API Development](/categories/api)

macure/jojka-sdk
================

SDK Library for Jojka API

v1.0.3(3y ago)08MITPHPPHP ^7.2.5

Since Sep 2Pushed 3y ago2 watchersCompare

[ Source](https://github.com/macure/jojka-sdk)[ Packagist](https://packagist.org/packages/macure/jojka-sdk)[ RSS](/packages/macure-jojka-sdk/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (4)Versions (6)Used By (0)

Jojka SDK for PHP
=================

[](#jojka-sdk-for-php)

This repository contains the open source PHP SDK that allows you to access the Jojka REST API from your PHP app.

Installation
------------

[](#installation)

The Jojka PHP SDK can be installed with [Composer](https://getcomposer.org/). Run this command:

```
composer require macure/jojka-sdk
```

Usage
-----

[](#usage)

> **Note:** This version of the Jojka SDK for PHP requires PHP 7.2.5 or greater.

API key is required for API calls. Please make sure you accquire the key before using the library.

```
require_once __DIR__ . '/vendor/autoload.php'; // change path as needed

$sdk = new \Macure\JojkaSDK\JojkaSDK([
	'API_key' => '{app-key}'
]);
```

### Campaign service

[](#campaign-service)

With campaign service you can add and cancel campaign and get campaign recipient status.

```
use Macure\JojkaSDK\Http\Requests\AddCampaignRequest;
use Macure\JojkaSDK\Http\Requests\CancelCampaignRequest;
use Macure\JojkaSDK\Http\Requests\GetCampaignRecipientsStatusRequest;

// add campaign
$response = $sdk->campaign->addCampaign([
    AddCampaignRequest::TO_MSISDN => '46709771337;46709966666',
    AddCampaignRequest::MSG       => 'hello',
    AddCampaignRequest::SCHEDULED => '2016-05-31 12:18:52',
    AddCampaignRequest::NAME      => 'test campaign'
]);

// cancel campaign
$response = $sdk->campaign->cancelCampaign([
    CancelCampaignRequest::CAMPAIGN_ID => 287359
]);

// get campaign recipients status
$response = $sdk->campaign->getCampaignRecipientsStatus([
    GetCampaignRecipientsStatusRequest::CAMPAIGN_ID => 287359
]);
```

### Contact service

[](#contact-service)

With contact service you can add or remove contact, add or remove contact from group, import and export contact list, add and remove from blocklist.

```
use Macure\JojkaSDK\Http\Requests\AddContactRequest;
use Macure\JojkaSDK\Http\Requests\InBlocklistRequest;
use Macure\JojkaSDK\Http\Requests\RemoveContactRequest;
use Macure\JojkaSDK\Http\Requests\AddToBlocklistRequest;
use Macure\JojkaSDK\Http\Requests\AddContactToGroupRequest;
use Macure\JojkaSDK\Http\Requests\ExportContactsListRequest;
use Macure\JojkaSDK\Http\Requests\ImportContactsListRequest;
use Macure\JojkaSDK\Http\Requests\GetGroupsFromMsisdnRequest;
use Macure\JojkaSDK\Http\Requests\RemoveFromBlocklistRequest;
use Macure\JojkaSDK\Http\Requests\RemoveContactFromGroupRequest;

// add contact
$response = $sdk->contact->addContact([
    AddContactRequest::MSISDN => '46709771337',
    AddContactRequest::NAME   => 'Lilleman',
    AddContactRequest::GROUP  => 'Utvecklare;Jojka personal'
]);

// remove contact
$response = $sdk->contact->removeContact([
    RemoveContactRequest::MSISDN => '46709771337'
]);

// add to group
$response = $sdk->contact->addContactToGroup([
    AddContactToGroupRequest::MSISDN => '46709771337',
    AddContactToGroupRequest::GROUP  => 'gruppnamn2'
]);

// remove from group
$response = $sdk->contact->removeContactFromGroup([
    RemoveContactFromGroupRequest::MSISDN => '46709771337',
    RemoveContactFromGroupRequest::GROUP  => 'Utvecklare'
]);

// import contacts
$response = $sdk->contact->importContactsList([
    ImportContactsListRequest::CONTACTS_LIST => [
        [
            'msisdn' => '46709771337',
            'name'   => 'Lilleman',
            'groups' => ['Utvecklare', 'Jojka personal 46709966666', 'Rutger', 'Lindquist', 'VD']
        ]
    ]
]);

// export contacts
$response = $sdk->contact->exportContactsList([
    ExportContactsListRequest::MAX    => 100,
    ExportContactsListRequest::OFFSET => 0
]);

// get groups from msisdn
$response = $sdk->contact->getGroupsFromMsisdn([
    GetGroupsFromMsisdnRequest::MSISDN => '46709771337'
]);

// add to blocklist
$response = $sdk->contact->addToBlocklist([
    AddToBlocklistRequest::MSISDN => '46709771337'
]);

// remove from blocklist
$response = $sdk->contact->removeFromBlocklist([
    RemoveFromBlocklistRequest::MSISDN => '46709771337'
]);

// in blocklist
$response = $sdk->contact->inBlocklist([
    InBlocklistRequest::MSISDN => '46709771337'
]);
```

### Message service

[](#message-service)

With message service you can fetch replies, get message ids by campaign, get message status and send the message.

```
use Macure\JojkaSDK\Http\Requests\SendRequest;$response
use Macure\JojkaSDK\Http\Requests\FetchRepliesRequest;
use Macure\JojkaSDK\Http\Requests\GetMessageStatusRequest;
use Macure\JojkaSDK\Http\Requests\GetMessageIdsByCampaignIdRequest;

// fetch replies
$response = $sdk->message->fetchReplies([
    FetchRepliesRequest::FROM_MSISDN => '46709771337',
    FetchRepliesRequest::SINCE_TIME  => '2016-05-31 13:00:06'
]);

// get message ids by campaign id
$response = $sdk->message->getMessageIdsByCampaignId([
    GetMessageIdsByCampaignIdRequest::CAMPAIGN_ID => 287359
]);

// get message status
$response = $sdk->message->getMessageStatus([
    GetMessageStatusRequest::MSG_ID => '6223c1c6079e9c21b5901d63',
]);

// send
$response = $sdk->message->send([
    SendRequest::TO  => '46709771337',
    SendRequest::MSG => 'hello world'
]);
```

### Responses

[](#responses)

All service calls return instance of \\Macure\\JojkaSDK\\Http\\Response.

```
namespace Macure\JojkaSDK\Http\Response;

use GuzzleHttp\Psr7\Response as Psr7Response;

class Response extends Psr7Response {}
```

The method **"deserialize"** in Response class deserialize API response and maps it to appropriate models, objects, arrays and etc so it can be easily used in any application.

```
require_once __DIR__ . '/vendor/autoload.php'; // change path as needed

use Macure\JojkaSDK\Models\Contact;
use Macure\JojkaSDK\Http\Response\ContactListResponse;
use Macure\JojkaSDK\Http\Requests\ImportContactsListRequest;

$sdk = new \Macure\JojkaSDK\JojkaSDK([
	'API_key' => '{app-key}'
]);

/**
 * @var ContactListResponse $response
 */
$response = $sdk->contacts->importContactsList([
    ImportContactsListRequest::CONTACTS_LIST => [
        [
            'msisdn' => '46709771337',
            'name'   => 'Lilleman',
            'groups' => ['Utvecklare', 'Jojka personal 46709966666', 'Rutger', 'Lindquist', 'VD']
        ]
    ]
]);

/**
 * @var Contact[] $contacts
 */
$contacts = $response->deserialize();

foreach ($contacts as $contact) {
    $name   = $contact->getName();
    $groups = $contact->getGroups();
}
```

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Total

4

Last Release

1352d ago

PHP version history (2 changes)v1.0.0PHP ^7.2.5 || ^8.0

v1.0.3PHP ^7.2.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/9ccd02ba6e48537bb9bc37d848b23b2b3b98ead929d3948e6e14568344a8fb59?d=identicon)[macure](/maintainers/macure)

---

Top Contributors

[![vsimke](https://avatars.githubusercontent.com/u/5629780?v=4)](https://github.com/vsimke "vsimke (11 commits)")[![macure](https://avatars.githubusercontent.com/u/1274948?v=4)](https://github.com/macure "macure (7 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/macure-jojka-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/macure-jojka-sdk/health.svg)](https://phpackages.com/packages/macure-jojka-sdk)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M733](/packages/sylius-sylius)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M563](/packages/shopware-core)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)[aimeos/prisma

A powerful PHP package for integrating media related Large Language Models (LLMs) into your applications

1943.1k5](/packages/aimeos-prisma)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
