Code Monkey home page Code Monkey logo

chatwork-sdk's Introduction

Chatwork SDK for PHP

Remember that this SDK is non-official. It may not work when Chatwork update their APIs in the feature.
(However, I will try to cover all the changes from Chatwork. If something goes wrong, please let me know)

StyleCI Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Chatwork SDK now supports Chatwork API version 2
Check the Chatwork API Document here

Requirement

  • PHP >= 5.4
  • PHP cURL

Install

You can install and manage Chatwork SDK for PHP by using Composer

composer require wataridori/chatwork-sdk

Or add wataridori/chatwork-sdk into the require section of your composer.json file then run composer update

Usage

Firstly, to use Chatwork API, you must register an API Key.
Pass your key to ChatworkSDK class.
ChatworkSDK::setApiKey($apiKey);

If you have problems with the SSL Certificate Verification, you can turn it off by the following setting.

// Not recommend. Only do this when you have problems with the request
ChatworkSDK::setSslVerificationMode(false);

Now you can easily use many functions to access Chatwork API Endpoints.

ChatworkSDK's Classes

ChatworkAPI: This is the class that contains base API. You can use it to send request to Chatwork and receive the response in array.

ChatworkSDK::setApiKey($apiKey);
$api = new ChatworkApi();
// Get user own information
$api->me();

// Get user own statics information
$api->getMyStatus();

// Get user rooms list
$api->getRooms();
ChatworkSDK also provides many others class that help you to work in more object oriented way.
  • ChatworkRoom: Use for store Room Information, with many functions to work with Room
  • ChatworkUser: Use for store User Information.
  • ChatworkMessage: Use for store Message Information.
ChatworkSDK::setApiKey($apiKey);
$room = new ChatworkRoom($roomId);
// The following function will return an array of ChatworkUser
$members = $room->getMembers();
foreach ($members as $member) {
    // Print out User Information
    print_r($member->toArray());
}

// Send Message to All Members in the Room
$room->sendMessageToAll('Test Message');

// Send Message to list of members in the room
$room->sendMessageToList([$member_1, $member_2], 'Another Test Message');

The 3 classes above are extended from the ChatworkBase class. ChatworkBase provides you some useful function to work with messages. You can easily build a TO message, REPLY or QUOTE message.

ChatworkSDK::setApiKey($apiKey);
$room = new ChatworkRoom($roomId);
$messages = $room->getMessages();
if ($messages & !empty($messages[0])) {
    $lastMessage = $messages[0];
    // Reset Message to null string
    $room->resetMessage();
    // Append the REPLY text to current message
    $room->appendReplyInRoom($lastMessage);
    // Append the QUOTE text to current message
    $room->appendQuote($lastMessage);
    // Append the Information Text to the current message
    $room->appendInfo('Test Quote, Reply, Info text', 'Test from Chatwork-SDK');
    // Send current message into the Room
    $room->sendMessage();
}
Check ChatworkSDK functions list here for further details and usages.

Run test

  • Create a file named config.json inside the tests/fixtures/ folder.
  • Input your API Key, and a test Room into config.json file. It should look like this:
{
  "apiKey": "YOUR-API-KEY-HERE",
  "roomId": "YOUR-TEST-ROOM-HERE"
}
  • Then run phpunit to start testing.

Contribution

View contribution guidelines here

chatwork-sdk's People

Contributors

wataridori avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.