Chatwork SDK for PHP

About

This is just a non-official SDK for Chatwork API written in PHP. It may not work when Chatwork update their APIs in the feature.

Requirement

ChatworkSDK yêu cầu phiên bản PHP từ 5.4 trở lên. Ngoài ra ChatworkSDK sử dụng cURL để gửi request nên bạn cũng cần phải có cURL cũng như extension cURL cho PHP.

Install

Bạn có thể cài đặt ChatworkSDK thông qua composer bằng câu lệnh đơn giản:

composer require wataridori/chatwork-sdk

Usage

  • Trước tiên, để sử dụng được các hàm API mà Chatwork cung cấp, bạn cần đăng ký một chuỗi token tại đây. Hãy chú ý đừng để lộ chuỗi token đó cho bất kỳ ai, bởi họ có thể sử dụng token để đọc hay gửi message với account của bạn đấy 😄
  • Khi đã có được API Token, bạn có thể bắt đầu sử dụng ChatworkSDK một cách dễ dàng.
ChatworkSDK::setApiKey($apiKey);

ChatworkSDK hiện đã cover hết tất cả những API mà Chatwork cung cấp. Danh sách đó các bạn có thể tham khảo ở trang Developer của Chatwork. Bạn có thể gửi request đến tất cả các Enpoint mà Chatwork cung cấp thông qua các hàm trong class ChatworkAPI. Danh sách các hàm này cũng như cách dùng có thể xem ở đây. Ví dụ:

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();

Advanced

Bên cạnh việc cover hết toàn bộ các API mà Chatwork cung cấp hiện tại thì ChatworkSDK còn cung cấp các Class và các hàm hữu ích để bạn có thể viết code theo một cách hướng đối tượng hơn, cũng như đơn giản hoá rất nhiều tác vụ.

Những class đó bao gồm ChatworkRoom, ChatworkMessageChatworkUser.

Một ví dụ về việc khởi tạo một đối tượng của ChatworkRoom, lấy ra danh sách các user có trong Room đó (kết quả là một mảng các instances của Class ChatworkUser), sau đó gửi một message đến user trong Room.

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');

Ngoài ra, do cả 3 Class ChatworkRoom, ChatworkMessageChatworkUser đều được kế thừa từ ChatworkBase thế nên bạn cũng có thể sử dụng rất nhiều hàm liên quan đến việc xử lý text, xử lý message mà ChatworkBase cung cấp.

Dưới đây là một ví dụ về cách thức gửi một mesage reply một message khác, hay gửi một message có chứa các tag info, hay cả nội dung quote từ một message khác.

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();
}

Run Test

Để chạy Unit Test, bạn cần tạo một số config trước. Cụ thể:

  • Tạo một file có tên là config.json, đặc bên trong folder tests/fixtures/.
  • Nhập vào Chatwork API Token mà bạn có, cũng như một RoomID để test. File config.json của bạn cần có dạng như sau:
{
    "apiKey": "YOUR-API-KEY-HERE",
    "roomId": "YOUR-TEST-ROOM-HERE"
}
  • Cuối cùng, chỉ cần chạy lệnh phpunit.

Contrubuting

  • Fork
  • Clone
  • Viết code & test case
  • phpunit
  • Push code
  • Tạo Pull Request