2016-11-13 76 views
0

我试图用这个package上,但我得到这个错误:调用一个成员函数听到()非对象

Call to a member function hears() on a non-object 

这是我的代码:

$slackbot = new SlackBot(); 
$slackbot = SlackBot::initialize('xoxb'); 


// give the bot something to listen for. 
$slackbot->hears('hello', function (SlackBot $bot, $message) { 
    $bot->reply('Hello yourself.'); 
}); 

我该如何解决这个问题?


编辑

这是我在文件:

routes.php文件

<?php 

use SlackBot; 

Route::post('/slack', function(\Illuminate\Http\Request $request) 
{ 

    $payload = $request->all(); 

    if (isset($payload['type']) && isset($payload['challenge'])) 
    { 
     if ($payload['type'] == 'url_verification') 
     { 
      return $payload['challenge']; 
     } 
    } 

    $slackbot = new SlackBot(); 
    $slackbot = SlackBot::initialize('xoxb-xxx'); 


    // give the bot something to listen for. 
    $slackbot->hears('hello', function (SlackBot $bot, $message) { 
     $bot->reply('Hello yourself.'); 
    }); 

}); 
+0

https://github.com/mpociot/slackbot#basic-usage – Farkie

回答

1

你的第二行是错误的 - 你应该初始化创建的对象上,不会覆盖它。

$slackbot = new SlackBot(); 
$slackbot->initialize('xoxb'); 

编辑:我没有经历过一个门面自己使用SlackBot,但它看起来像,因为你使用一个门面,你不应该初始化它。相反,您应该确保您的令牌设置在正确的配置文件(services.slack.bot_token)中。

然后,代替例如

$slackbot->hears(...) 

你做

SlackBot::hears(...) 
+0

这不起作用,因为我将调用未定义的方法Mpociot \ SlackBot \ Facades \ Slac kBot :: initialize() –

+0

你是否像这样写它?这些行直接从您链接的页面上的文档中提取出来。 –

+0

是的,我也有一个问题:http://stackoverflow.com/questions/40565186/call-to-undefined-method-from-composer-added-package –

1

我认为你要使用的门面,而不是实际的SlackBot类的。

尝试改变:

use SlackBot; 

有:

use Mpociot\SlackBot\SlackBot; 

或者使用SlackBot::class得到完整的类的命名空间:

$slackBot = app(SlackBot::class); 
$slackBot->initialize('xoxb'); 
相关问题