1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 21:22:58 +01:00
invoiceninja/app/Http/Controllers/BotController.php
2016-08-04 20:01:30 +03:00

90 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Ninja\Repositories\InvoiceRepository;
use App\Ninja\Intents\BaseIntent;
class BotController extends Controller
{
protected $invoiceRepo;
public function __construct(InvoiceRepository $invoiceRepo)
{
//parent::__construct();
$this->invoiceRepo = $invoiceRepo;
}
public function handleMessage($platform)
{
//$message = 'Here\'s your <a href=\'http://ninja.dev/invoices/1/edit\'>invoice</a>';
$message = 'create an invoice for test client';
$to = '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts';
$appId = env('MSBOT_LUIS_APP_ID');
$subKey = env('MSBOT_LUIS_SUBSCRIPTION_KEY');
$message = rawurlencode($message);
$url = sprintf('%s?id=%s&subscription-key=%s&q=%s', MSBOT_LUIS_URL, $appId, $subKey, $message);
$data = file_get_contents($url);
$data = json_decode($data);
if ( ! count($data->intents)) {
return false;
}
$intent = $data->intents[0];
$intentType = $intent->intent;
$intent = BaseIntent::createIntent($intentType, $data->entities);
$message = $intent->process();
$this->sendResponse($to, $message);
}
private function sendResponse($to, $message)
{
$clientId = env('MSBOT_CLIENT_ID');
$clientSecret = env('MSBOT_CLIENT_SECRET');
$scope = 'https://graph.microsoft.com/.default';
$data = sprintf('grant_type=client_credentials&client_id=%s&client_secret=%s&scope=%s', $clientId, $clientSecret, $scope);
$curl = curl_init();
$opts = [
CURLOPT_URL => MSBOT_LOGIN_URL,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => 'POST',
CURLOPT_POSTFIELDS => $data,
];
curl_setopt_array($curl, $opts);
curl_exec($curl);
$response = json_decode(curl_exec($curl));
$token = $response->access_token;
print_r($token);
$url = sprintf('%s/conversations/%s/activities/', SKYPE_API_URL, $to);
$opts = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => 'POST',
CURLOPT_POSTFIELDS => $message,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
],
];
curl_setopt_array($curl, $opts);
$response = curl_exec($curl);
curl_close($curl);
var_dump($response);
}
}