与Node.js连接到客户端的Discord.js失败但没有错误

时间:2017-02-18 15:31:06

标签: javascript node.js discord

我在nodeJS中有Discord.JS模块

$ npm install --save discord.js

但是当我试图用它连接到用户时,它就失败了。

这是我的package.json

{
  "name": "discord-bot",
  "version": "0.0.1",
  "description": "A Discord Bot that comes with a lot of cool commands, music player and a betting game!",
  "main": "app/app.js",
  "scripts": {
    "start": "electron ."
  },
  "keywords": [
    "bot",
    "discord",
    "music",
    "betting-bot"
  ],
  "author": "Richard Olsen Sandberg",
  "license": "MIT",
  "devDependencies": {
    "electron": "^1.4.15"
  },
  "dependencies": {
    "discord.js": "^11.0.0"
  }
}

这是我app/app.js

的代码
var ClassNode     = require ( __dirname + '/web/js/classnodes.js' ), /* This is something I have made to detect class names and make more beautiful outputs */
    Discord       = require ( 'discord.js' )                       , /* This is the offical Discord.JS library                                              */
    Client        = new Discord.Client (  )                        , /* This is a new instance of a Client from the Discord module                          */
    Electron      = require ( 'electron' )                         , /* This is to create applications that uses html, css, js, etc inside a chrome window  */
    BrowserWindow = Electron.BrowserWindow                         , /* This is the class that creates the Chrome Window                                    */
    app           = Electron.app                                   , /* This is the core off Electron                                                       */
    ipc           = Electron.ipcMain                               ; /* Send messages through windows                                                       */

/*****************************************/
/* I will not show content of Electron   */
/* stuff except from the login part to   */
/* make the question shorter             */
/*****************************************/



ipc.on ( 'login-attempt', ( event, args ) => {
  console.warning ( ClassNode.className + 'New sign in attempt triggered!' );

  if ( typeof args !== 'object' || args.username == undefined || args.password == undefined ) {
    console.error ( ClassNode.className + 'Invalid sign in attempt!' );
    event.sender.send ( 'login-attempt-error', ClassNode.className + 'Invalid request!' );
    return;
  }

  Client.login ( args.username, args.password, ( error, token ) => {
    if ( error ) {
      console.error ( ClassNode.className + 'Login attempt failed : ' + error );
      event.sender.send ( 'login-attempt-error', ClassNode.className + 'Login attempt failed : ' + error );
    } else {
      console.log ( ClassNode.className + 'Successfully created a connection!' );
      console.log ( ClassNode.className + 'Token : ' + token );
    }
  } );

} );

现在假设浏览器窗口已发送ipc.send('login-attempt', { username: 'discord@example.com', password: '123abc' })

输出:

  

Electron :: ipcMain |触发了新的登录尝试!

这意味着它从未执行过Client.login函数。

为什么不这样做以及如何解决?

1 个答案:

答案 0 :(得分:0)

不再允许通过Discord API使用用户名和密码输入。您将需要使用OAuth应用程序或存储在localStorage中的用户令牌,开发人员工具可以通过Discord客户端使用 Ctrl + 访问这些令牌在Windows上移位 + I 使用其他平台的相应等效项)。

如图here所示,只接受一个令牌。

API更改已解释为here