メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

以降ガイド: JavaScript 0.11.0

クライアントのインストール

AccessManagerは直接の依存関係ではなくなり、つまり必須ではなくなりました。 これにより、Chatクライアントの初期化方法が変化します。

以前の方法:

    let accessManager = new Twilio.Common.AccessManager(token);
    let chatClient = new Twilio.Chat.Client(accessManager);

The new way just requires the token to be passed:

    let chatClient = new Twilio.Chat.Client(token);

This does also mean that you have to call the chatClient.updateToken(token) method when needed, rather than using the old AccessManager.

トークンのライフサイクルイベントを捕捉するのに便利なAccessManagerを引き続き使い続けたい場合は、必要に応じてAccessManagerを使用できます。 AccessManagerはTwilioの共通ライブラリーで引き続きご利用いただけます。

新バージョンのAccessManagerは以下のように使用します:

    let accessManager = new Twilio.AccessManager(token);
    let chatClient = new Twilio.Chat.Client(token);

    accessManager.on('tokenUpdated', () => {
        chatClient.updateToken(accessManager.token);
    });

    accessManager.on('tokenExpired', () => {
        let newToken = obtainNewToken();
        accessManager.updateToken(newToken);
    });

削除されたプロパティー

  • client.identity : Now you can access this with client.userInfo.identity. Note that you may access any properties only after the client.initialize() call has succeeded
  • channel.messages : 前バージョンでは、同期プロパティーchannel.messagesを通じて取得されたメッセージの一覧にアクセスできました。
  • With the new version you will need to always call channel.getMessages() . Don’t worry, we will cache messages for you, so it won’t make the performance of your app any worse.

Separated Public and User Channel Lists

In the previous version to get a user channels list, you had to do something like the following:

    chatClient.getChannels()
      .filter(channel => (channel.status === 'joined' || channel.status === 'invited'))
      .then(result => doSomething);

That approach had multiple issues related to client initialization latency, consumed traffic, etc., so we made a couple of changes:

  • ユーザーチャネル(参加、招待されたもの、およびプライベートチャネル)、および公開チャネルの一覧は分離されました。
  • 公開チャネル一覧はより軽量で、公開チャネルの膨大な目録の処理が大変容易となった特別な "channelDescriptor" オブジェクトで構成されています。
  • We have added a pagination to load channels bit-by-bit

挙動を見てみましょう:

Just populate a list of my channels:

    // Function accepts a channels page, which has an array of items and a method `nextPage` to proceed 
    // to next page, if it exists
    function populateChannels(channelsPage) {
      channelsPage.items.forEach(channel => drawChannelSomehow);
      if(channelsPage.hasNextPage) {
        channelsPage.nextPage().then(populateChannels);
      }
    }

    chatClient.getUserChannels().then(populateChannels);

公開チャネルの一覧を取得します:

    chatClient.getPublicChannels().then(channelDescriptorPage => {
      // First page of channel descriptor
      // Paging works the same way as for user channels
      channelDescriptorPage.items.forEach(descriptor => {
        console.log('Descriptor for a channel:', descriptor.friendlyName, descriptor.sid);
      })
    });

公開リスト上のチャネルに参加します:

    channelDescriptor.getChannel()
      .then(channel => channel.join())
      .then(channel => { console.log('Joined to the channel', channel.friendlyName);

Also note, that “channelAdded” and “channelRemoved” will be fired only for channels from “User channels” list, not for the public one

チャネルのgetMessagesは配列ではなくPaginatorを返すようになりました。

We have standarized paging and as such paged resource (currently Message) lists will return a Paginator, not an array as previously.

現在は、このようになりました:

// Get Messages for a previously created channel
myChannel.getMessages()
  .then(function(messagesPage) {
     messagesPage.items.forEach(message => {
        console.log('Author:' + message.author);
     });
     if (messagesPage.hasNextPage) {
        return messagesPage.nextPage();
     }
});

Messageのページ分けにおけるAnchorの型変更

getMessagesanchor引数はMessagesidを表す文字列から、Messageindexを表す整数に変更されました。

新機能

Messageの新しいCountメソッドおよびMember

もっとも顕著な新機能のひとつは、counterメソッドのセット: channel.getMembersCount()、channel.getMessagesCount()、およびchannel.getUnconsumedMessagesCount()です。

Note: These new methods are currently semi-realtime. This means that this data will be eventually correct, but will also possibly be incorrect for a few seconds. The Chat system does not provide real time events for counter values changes.

これは「未読メッセージ数」バッヂには大変便利ですが、これらカウンターがリアルタイムに正確であることを前提とした核となるアプリケーションロジックは推奨しません。

Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.