Talk is a Laravel 5 based user conversation (inbox) system. You can easily integrate this package with any Laravel based project. It helps you to develop a messaging system in just 25 mins. So let's start :)
Talk is a Laravel package so you can install it via composer. Run this command in your terminal from your project directory.
composer require nahid/talk
Wait for a while, Composer will automatically install Talk in your project.
When the download is complete, you have to call this package service in config/app.php
config file. To do that, add this line in app.php
in providers
section
Nahid\Talk\TalkServiceProvider::class,
To use facade you have to add this line in app.php
in aliases
array
'Talk' => Nahid\Talk\Facades\Talk::class,
Now run this command in your terminal to publish this package resources
php artisan vendor:publish --provider="Nahid\Talk\TalkServiceProvider"
After running this command, all necessary file will be included in your project. This package has two default migrations. So you have to run migrate command like this. (But make sure your database configuration is configured correctly.)
php artisan migrate
Okay, now you need to configure your user model for Talk. Go to config/talk.php
and config it.
return [
'user' => [
'table' => 'your_users_table_name',
'model' => 'User\Model',
'columns' => ['column1', 'column2']
]
];
[NB: Here columns mean, the columns that you want should be used for inbox queries]
Its very easy to use. First you have to set authenticate user id to Talk.
Talk::setAuthUserId(auth()->user()->id);
Now you may use any method what you need. Please see the API Doc.
- setAuthUserId
- isConversationExists
- isAuthenticUser
- sendMessage
- sendMessageByUserId
- getInbox
- getInboxAll
- getConversationsById
- getConversationsByUserId
- makeSeen
- getReceiverInfo
- deleteMessage
- deleteForever
- deleteConversations
setAuthUserId
method sets the user id, which you pass through parameter
Syntax
void setAuthUserId($userid)
This method checks currently logged in user and if given user is already in conversation
Syntax
int/false isConversationExists($userid)
isAuthenticUser checks if the given user exists in given conversation.
Syntax
boolean isAuthenticUser($conversationId, $userId)
You can send messages via conversation id by using this method. If the message is successfully sent, it will return objects of Message model otherwise, it will return false
Syntax
object/false sendMessage($conversationId, $message)
You can send message via receiver id by using this method. If the message is successfully sent, it will return objects of Message model otherwise, it will return false
Syntax
object/false sendMessageByUserId($userId, $message)
If you want to get all the inboxes, this method may help you. This method gets all the inboxes via given user id
Syntax
object getInbox([$offset[, $take]])
If you want to get all the inboxes with soft deleted messages, this method may help you. This method gets all the inboxes via given user id
Syntax
object getInboxAll([$offset[, $take]])
When you want to get all the conversations using your desire conversation id, you can try this method. This method returns all the conversations with user's objects
Syntax
object getConversationsById($conversationId)
When you want to get all the conversations using your desire receiver id, you can try this method. This method returns all the conversations with user's objects
Syntax
object getConversationsByUserId($receiverId)
This method returns all the information about message receiver.
Syntax
object getReceiverInfo($conversationId)
If you want to set a message as seen you can use this method.
Syntax
boolean makeSeen($messageId)
When you want to delete a specific message from a conversation, you have to use this method. This method soft delete message for both user-end individually.
Syntax
boolean deleteMessage($messageId)
If you want to hard delete or permanently delete a specific message then you have to use this method
Syntax
boolean deleteForever($messageId)
This method is used to permanently delete all conversations
Syntax
boolean deleteConversations($conversationId)
Thanks :)
Hey dude! Help me out for a couple of 🍻!