invoiceninja/app/Http/Controllers/BotController.php

136 lines
94 KiB
PHP
Raw Normal View History

2016-08-04 20:01:30 +03:00
<?php
namespace App\Http\Controllers;
2016-08-07 09:10:36 +03:00
use Exception;
2016-08-04 20:01:30 +03:00
use App\Ninja\Intents\BaseIntent;
class BotController extends Controller
{
public function handleMessage($platform)
{
2016-08-06 20:54:56 +03:00
$message = 'invoice acme client for 2 tickets';
2016-08-04 20:01:30 +03:00
$to = '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts';
2016-08-06 20:54:56 +03:00
//$message = view('bots.skype.message', ['message' => 'testing'])->render();
//return $this->sendResponse($to, $message);
2016-08-07 09:10:36 +03:00
$message = '{
"type": "message/image",
"text": "Test message",
"attachments": [
{
"contentType": "application/pdf",
"contentUrl": "http://www.orimi.com/pdf-test.pdf",
"thumbnailUrl": "http://www.orimi.com/pdf-test.pdf",
"filename": "test.pdf"
}
]
}';
return $this->sendResponse($to, $message);
try {
$data = $this->parseMessage($message);
$intent = BaseIntent::createIntent($data);
$message = $intent->process();
} catch (Exception $exception) {
$message = view('bots.skype.message', [
'message' => $exception->getMessage()
])->render();
}
$this->sendResponse($to, $message);
}
private function parseMessage($message)
{
2016-08-04 20:01:30 +03:00
$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);
2016-08-06 20:54:56 +03:00
var_dump($data->compositeEntities);
2016-08-04 20:01:30 +03:00
2016-08-07 09:10:36 +03:00
return $data;
2016-08-04 20:01:30 +03:00
}
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);
2016-08-06 20:54:56 +03:00
/*
$url = sprintf('%s/conversations/%s/activities', 'https://apis.skype.com/v3', '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts');
$message = 'data:application/pdf;base64,JVBERi0xLjMKJf////8KNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9jYSAxCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9FeHRHU3RhdGUKL0NBIDEKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyA0IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PAovR3MxIDcgMCBSCi9HczIgOCAwIFIKPj4KL1hPYmplY3QgPDwKL0kxIDYgMCBSCj4+Ci9Gb250IDw8Ci9GMSA5IDAgUgovRjIgMTAgMCBSCj4+Cj4+CmVuZG9iagozIDAgb2JqCjw8Ci9MZW5ndGggMTAwMTUKPj4Kc3RyZWFtCjEgMCAwIC0xIDAgODQxLjg5IGNtCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0NzUuMjggMzA5LjgyOTk5OTk5OTk5OTkgODAgMTguNTY1OTk5OTk5OTk5OTc0IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzk1LjI4IDMwOS44Mjk5OTk5OTk5OTk5IDgwIDE4LjU2NTk5OTk5OTk5OTk3NCByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQ2Ni4wMjQgMTQ5LjEzMiA2Ny42MDEgMTQuNTY2MDAwMDAwMDAwMDAzIHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzgwIDE0OS4xMzIgODYuMDI0IDE0LjU2NjAwMDAwMDAwMDAwMyByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNzkxLjQzIFRkCi9GMSA5IFRmCjwyMTIyMjMyNDI1MjQyNjI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjc2LjEwOCA3OTEuNDMgVGQKL0YxIDkgVGYKPDI4MjkyYTI1MjkyYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyYzI5MjUyYTJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjY0LjAyMSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmUyNjJmMjMyNDMwMzEzMjI5MzMyYTIzMzQyYzI5MmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTQxLjkxNiA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjYyMjIzPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQwIDc2NC4yOTggVGQKL0YxIDkgVGYKPDM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDcuNDcgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzczODM5MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNjYuMjcxIDc2NC4yOTggVGQKL0YxIDkgVGYKPDNhM2IzODM2PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjg1LjEwOCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzODNjM2QzYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjEwNy4zNzQgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzMzNTNiMzkzYTM3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2UzZTNiM2EyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMzguMTM4OTk5OTk5OTk5OTggNzkxLjQzIFRkCi9GMSA5IFRmCjwzZjJhNDA0MTQyMjI0MzJlNDAyNDI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI4OC41NDggNzkxLjQzIFRkCi9GMSA5IFRmCjw0NDJlMmMyYTI1MzAyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozMTUuMjA2IDc5MS40MyBUZAovRjEgOSBUZgo8NDU0MTI0MzEyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjMzOC4yMzY5OTk5OTk5OTk5NyA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2MzNT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzc3Ljg2Mzk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ2MzQzMTJkMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjMwLjEyOSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8M2QzNTNiPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9
//$url = sprintf('%s/conversations', 'https://apis.skype.com/v3');
//$url = sprintf('%s/conversations', 'https://api.botframework.com/v3');
//$url = sprintf('%s/conversations', SKYPE_API_URL);
$message = '{
"originalBase64": "data:application/pdf;base64,JVBERi0xLjMKJf////8KNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9jYSAxCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9FeHRHU3RhdGUKL0NBIDEKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyA0IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PAovR3MxIDcgMCBSCi9HczIgOCAwIFIKPj4KL1hPYmplY3QgPDwKL0kxIDYgMCBSCj4+Ci9Gb250IDw8Ci9GMSA5IDAgUgovRjIgMTAgMCBSCj4+Cj4+CmVuZG9iagozIDAgb2JqCjw8Ci9MZW5ndGggMTAwMTUKPj4Kc3RyZWFtCjEgMCAwIC0xIDAgODQxLjg5IGNtCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0NzUuMjggMzA5LjgyOTk5OTk5OTk5OTkgODAgMTguNTY1OTk5OTk5OTk5OTc0IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzk1LjI4IDMwOS44Mjk5OTk5OTk5OTk5IDgwIDE4LjU2NTk5OTk5OTk5OTk3NCByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQ2Ni4wMjQgMTQ5LjEzMiA2Ny42MDEgMTQuNTY2MDAwMDAwMDAwMDAzIHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzgwIDE0OS4xMzIgODYuMDI0IDE0LjU2NjAwMDAwMDAwMDAwMyByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNzkxLjQzIFRkCi9GMSA5IFRmCjwyMTIyMjMyNDI1MjQyNjI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjc2LjEwOCA3OTEuNDMgVGQKL0YxIDkgVGYKPDI4MjkyYTI1MjkyYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyYzI5MjUyYTJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjY0LjAyMSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmUyNjJmMjMyNDMwMzEzMjI5MzMyYTIzMzQyYzI5MmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTQxLjkxNiA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjYyMjIzPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQwIDc2NC4yOTggVGQKL0YxIDkgVGYKPDM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDcuNDcgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzczODM5MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNjYuMjcxIDc2NC4yOTggVGQKL0YxIDkgVGYKPDNhM2IzODM2PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjg1LjEwOCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzODNjM2QzYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjEwNy4zNzQgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzMzNTNiMzkzYTM3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2UzZTNiM2EyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMzguMTM4OTk5OTk5OTk5OTggNzkxLjQzIFRkCi9GMSA5IFRmCjwzZjJhNDA0MTQyMjI0MzJlNDAyNDI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI4OC41NDggNzkxLjQzIFRkCi9GMSA5IFRmCjw0NDJlMmMyYTI1MzAyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozMTUuMjA2IDc5MS40MyBUZAovRjEgOSBUZgo8NDU0MTI0MzEyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjMzOC4yMzY5OTk5OTk5OTk5NyA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2MzNT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzc3Ljg2Mzk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ2MzQzMTJkMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjMwLjEyOSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8M2QzNTNiPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2Nu
"type": "message/pdf",
"name": "bear.jpg",
}';
$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);
*/
2016-08-04 20:01:30 +03:00
$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);
2016-08-06 20:54:56 +03:00
2016-08-04 20:01:30 +03:00
}
}