2016-11-13 29 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'); 
相關問題