chyiiiiiiiiiiii / flutter_zendesk_messaging

Zendesk-Messaging for Flutter developer
Apache License 2.0
31 stars 46 forks source link
android chat customer-service dart flutter ios messaging zendesk

Zendesk Messaging

[!NOTE] Very welcome every developer to contribute to this package of Zendesk. Now I have no much time to maintain regularly🥸

Pub

Messaging is a "user-based" chat

Live Chat is a "session-based" chat


Setup

1. Enable agent work-space

2. Enable Messaging

3. Add channel and get key

How to use?

Initialize

 final String androidChannelKey = '';
 final String iosChannelKey = '';

  @override
  void initState() {
    super.initState();
    ZendeskMessaging.initialize(
      androidChannelKey: androidChannelKey,
      iosChannelKey: iosChannelKey,
    );
  }

just use initialize() one time

Invalidate (optional)

@override
  void dispose() {
    ZendeskMessaging.invalidate();
    super.dispose();
  }
///  Invalidates the current instance of ZendeskMessaging.

After calling this method you will have to call ZendeskMessaging.initialize again if you would like to use ZendeskMessaging.

This can be useful if you need to initiate a chat with another set of androidChannelKey and iosChannelKey

Show

ZendeskMessaging.show();

You can use in onTap()

Authenticate (optional)

The SDK needs to be initialized before using authentication methods !

final ZendeskLoginResponse result = await ZendeskMessaging.loginUser(jwt: "YOUR_JWT");
await ZendeskMessaging.logoutUser();

Check authentication state (optional)

This method can be used to check wheter the user is alreday logged in!

await ZendeskMessaging.loginUser(jwt: "YOUR_JWT");
final bool isLoggedIn = await ZendeskMessaging.isLoggedIn();
// After the user is logged in [isLoggedIn] is true
await ZendeskMessaging.logoutUser();
final bool userStillLoggedIn = await ZendeskMessaging.isLoggedIn();
// After you call the logout method [ZendeskMessaging.isLoggedIn()] will return [false]

Retrieve the unread message count (optional)

There's must be a logged user to allow the recovery of the unread message count!

// Retrieve the unread message count
final int count = await ZendeskMessaging.getUnreadMessageCount()();

// if there's no user logged in, the message count will always be zero.

Set tags to a support ticket (optional)

Allows custom conversation tags to be set, adding contextual data about the conversation.

// Add tags to a conversation
 await ZendeskMessaging.setConversationTags(['tag1', 'tag2', 'tag3']);

// Note: Conversation tags are not immediately associated with a conversation when this method is called.
// It will only be applied to a conversation when end users either start a new conversation or send a new message in an existing conversation.

Clear conversation tags (optional)

Allows custom conversation tags to be set, adding contextual data about the conversation.

// Allows you to clear conversation tags from native SDK storage when the client side context changes.
// This removes all stored conversation tags from the natice SDK storage.
 await ZendeskMessaging.clearConversationTags();

// Note: This method does not affect conversation tags already applied to the conversation.

Known shortcomings

Future Function

Link

Contribute