2016-07-19 5 views
1

私はこのコードをhttp://quickblox.com/developers/Javascriptから取得します。ダイアログボックス作成時のQuickblox JS SDK notifyOccupants

My SDK info: /* QuickBlox JavaScript SDK - v2.1.4 - 2016-07-19 */

function notifyOccupants(dialogOccupants, newDialogId) { 
    dialogOccupants.forEach(function(itemOccupanId, i, arr) { 
    if (itemOccupanId != currentUser.id) { 
     var msg = { 
     type: 'chat', 
     extension: { 
      notification_type: 1, 
      _id: newDialogId, 
     }, 
     }; 
     QB.chat.send(itemOccupanId, msg); 
    } 
    }); 
} 

私はそれが常に返されて、この機能を実行します。

"quickblox.min.js:7 Uncaught TypeError: Cannot read property 'send' of undefined". 

誰かが助けることができますか?

答えて

0

tutorialのように、 あなたはそれを使用する前にQBオブジェクトを初期化する必要があります。

あなたのコード内でこの行ていることを確認:

QB.createSession({login: user.login, password: user.pass}, function(err, res) { 
    if (res) { 
    QB.chat.connect({userId: user.id, password: user.pass}, function(err, roster) { 

を、あなたのコードをチェックするには、コードが唯一のQBの初期化後に実行されます確認するためにconnect関数コールバック、 の内側にあります。

+0

このQB.init(data.token、quickblox.appId)を使用してquickbloxを初期化しました。私は自分のサーバーにquickbloxユーザー・セッションを作成し、セッションが存在することを保証します。私は成功した新しいダイアログを作成する呼び出し後。 –

0

マイコード:

var usersIds = []; 
usersIds.push(user); 

var params = { 
    type: 3, 
    occupants_ids: usersIds 
}; 

console.log("Creating a dialog with params: " + JSON.stringify(params)); 

QB.chat.dialog.create(params, function (err, createdDialog) { 
    if (err) { 
     console.log(err); 
     errorCallback(); 
    } else { 
     console.log("Dialog " + createdDialog._id + " created with users: " + usersIds); 

     // save dialog to local storage 
     var dialogId = createdDialog._id; 
     QuickbloxConfig.dialogs[dialogId] = createdDialog; 

     QuickbloxConfig.currentDialog = createdDialog; 
// 
//     self.joinToNewDialogAndShow(createdDialog); 

     self.notifyOccupants(createdDialog.occupants_ids, createdDialog._id, 1); 

     //self.triggerDialog(createdDialog._id); 

     successCallback(); 

    } 
}); 

私は(createdDialog.occupants_ids、createdDialog._id、1)self.notifyOccupantsを呼び出したときに、そのだけ失敗します。

+0

ここで 'self'を設定しますか? – Ygalbel

+0

私のアプリはangularjs上にあり、私はサービスを作成して、var self = thisを使います。サービス内の他の機能にアクセスする。 –

+0

'QB.chat.connect'はすでにエラーなく完了していますか? – Ygalbel

関連する問題